You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@depot.apache.org by aj...@apache.org on 2004/07/22 15:27:29 UTC
svn commit: rev 23153 - in incubator/depot/trunk/update/src/java/org/apache/depot/update: protocols protocols/impl repository util/compare util/io util/net util/net/select
Author: ajack
Date: Thu Jul 22 08:27:28 2004
New Revision: 23153
Modified:
incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/DefaultProtocolOperationsManager.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/impl/VfsProtocolOperationsProvider.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/repository/DefaultRepository.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/compare/ComparatorSequence.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/FileUtils.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/HtmlUtils.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/VfsUtils.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/VirtualResourceLocator.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ChildVrlSelector.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/MatchingVrlSelector.java
incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ProtocolVrlSelector.java
Log:
Attempt to avoid 'mailto:'
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/DefaultProtocolOperationsManager.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/DefaultProtocolOperationsManager.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/DefaultProtocolOperationsManager.java Thu Jul 22 08:27:28 2004
@@ -48,7 +48,7 @@
registerProvider(provider);
- Logger.getLogger().info("Selected " + provider.getClass().getName());
+ Logger.getLogger().info("Selected Provider: " + provider.getClass().getName() + " for " + context);
} catch (Exception ve) {
throw new UpdateRuntimeException(
"No *Working* Protocol Operation Providers Detected", ve);
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/impl/VfsProtocolOperationsProvider.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/impl/VfsProtocolOperationsProvider.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/protocols/impl/VfsProtocolOperationsProvider.java Thu Jul 22 08:27:28 2004
@@ -27,6 +27,7 @@
import org.apache.depot.update.protocols.Protocol;
import org.apache.depot.update.util.io.VfsUtils;
import org.apache.depot.update.util.net.VirtualResourceLocator;
+import org.apache.depot.update.util.net.select.ChildVrlSelector;
import org.apache.depot.update.util.select.ISelector;
/**
@@ -76,9 +77,14 @@
// Convert the list of File Objects to Locators...
List locators = new ArrayList(fileObjects.size());
+ ISelector childSelector = new ChildVrlSelector(container);
+
for (Iterator i = fileObjects.iterator(); i.hasNext();) {
FileObject fileObject = (FileObject) i.next();
- locators.add(resolveLocator(fileObject));
+
+ VirtualResourceLocator vrl = resolveLocator(fileObject);
+ if (childSelector.select(vrl))
+ locators.add(vrl);
}
return locators;
@@ -123,11 +129,25 @@
}
}
+ /**
+ * Resolve an address into a VFS FileObject
+ *
+ * @param address
+ * @return
+ * @throws Exception
+ */
private FileObject resolveAddress(VirtualResourceLocator address)
throws Exception {
return m_fsm.resolveFile(address.toExternalForm());
}
+ /**
+ * Resolve a VFS FileObject into an address
+ *
+ * @param fileObject
+ * @return
+ * @throws Exception
+ */
private VirtualResourceLocator resolveLocator(FileObject fileObject)
throws Exception {
return new VirtualResourceLocator(fileObject.getURL());
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/repository/DefaultRepository.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/repository/DefaultRepository.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/repository/DefaultRepository.java Thu Jul 22 08:27:28 2004
@@ -126,31 +126,34 @@
return results;
}
-public ArtifactInstance publishArtifact(ArtifactUpdaterContext context,
+ public ArtifactInstance publishArtifact(ArtifactUpdaterContext context,
ArtifactInstance instance) throws Exception {
// Create the 'remote' instance
- ArtifactInstance publishedInstance =
- new ArtifactInstance(
- instance.getArtifact(),
- new ArtifactLocator(
- instance.getLocator().getFilename(),
- instance.getLocator().getExtension(),
- new VirtualResourceLocator(
- folderForGroup(instance.getArtifact().getGroup()),
- instance.getLocator().getFilename())));
+ ArtifactInstance publishedInstance = new ArtifactInstance(
+ instance.getArtifact(),
+ new ArtifactLocator(
+ instance.getLocator().getFilename(),
+ instance.getLocator().getExtension(),
+ new VirtualResourceLocator(
+ folderForGroup(instance.getArtifact().getGroup()),
+ instance.getLocator().getFilename())));
// Perform copy
- context.getProtocolManager().performCopy(instance.getLocator().getLocation(),
- publishedInstance.getLocator().getLocation(), AllSelector.getInstance());
+ context.getProtocolManager().performCopy(
+ instance.getLocator().getLocation(),
+ publishedInstance.getLocator().getLocation(),
+ AllSelector.getInstance());
return publishedInstance;
- } public void deleteArtifact(ArtifactUpdaterContext context,
+ }
+
+ public void deleteArtifact(ArtifactUpdaterContext context,
ArtifactInstance instance) throws Exception {
// Perform copy
- context.getProtocolManager().performDelete(instance.getLocator().getLocation(),
- AllSelector.getInstance());
+ context.getProtocolManager().performDelete(
+ instance.getLocator().getLocation(), AllSelector.getInstance());
}
public static Repository getLocalTestRepository() {
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/compare/ComparatorSequence.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/compare/ComparatorSequence.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/compare/ComparatorSequence.java Thu Jul 22 08:27:28 2004
@@ -31,9 +31,10 @@
super(comparators);
}
- //
- // An Empty
- //
+ /**
+ * An empty sequence
+ *
+ */
public ComparatorSequence() {
super();
}
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/FileUtils.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/FileUtils.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/FileUtils.java Thu Jul 22 08:27:28 2004
@@ -1,17 +1,17 @@
/*
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.depot.update.util.io;
@@ -58,6 +58,12 @@
}
}
+ /**
+ * Create a URL for a File path.
+ *
+ * @param file
+ * @return
+ */
public static URL getFileURL(File file) {
URL url = null;
@@ -74,6 +80,12 @@
return url;
}
+ /**
+ * Create a URI for a String file path
+ *
+ * @param path
+ * @return
+ */
public static String toURI(String path) {
return toURI(new File(path));
}
@@ -142,4 +154,4 @@
IOUtils.close(input);
}
}
-}
+}
\ No newline at end of file
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/HtmlUtils.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/HtmlUtils.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/HtmlUtils.java Thu Jul 22 08:27:28 2004
@@ -22,6 +22,7 @@
import java.util.List;
import java.util.StringTokenizer;
+import org.apache.depot.common.log.Logger;
import org.apache.depot.update.util.net.VirtualResourceLocator;
import org.apache.depot.update.util.net.select.ChildVrlSelector;
import org.apache.depot.update.util.net.select.MatchingVrlSelector;
@@ -32,6 +33,14 @@
*/
public class HtmlUtils {
+ /**
+ * Extract the child URLs from a content stream
+ *
+ * @param parent
+ * @param contentStream
+ * @return
+ * @throws IOException
+ */
public static List getChildren(
VirtualResourceLocator parent,
InputStream contentStream)
@@ -53,6 +62,14 @@
return getChildren(parent, content);
}
+ /**
+ * Extract the child URLs from a content string
+ *
+ * @param parent
+ * @param content
+ * @return
+ * @throws IOException
+ */
public static List getChildren(
VirtualResourceLocator parent,
String content)
@@ -60,6 +77,15 @@
return getLinks(parent, content, new ChildVrlSelector(parent));
}
+ /**
+ * Get all links matching this pattern.
+ *
+ * @param parent
+ * @param content
+ * @param pattern
+ * @return
+ * @throws IOException
+ */
public static List getMatching(
VirtualResourceLocator parent,
String content,
@@ -67,15 +93,27 @@
throws IOException {
return getLinks(parent, content, new MatchingVrlSelector(pattern));
}
-
+
+ /**
+ * Get all links matching this selector.
+ *
+ * @param parent
+ * @param content
+ * @param pattern
+ * @return
+ * @throws IOException
+ */
public static List getLinks(
VirtualResourceLocator parent,
String content,
ISelector selector)
throws IOException {
List children = new ArrayList();
-// System.out.println("Selector : " + selector);
+ Logger.getLogger().debug("Extract HTML Links Selector : " + selector);
+
+ // Dro pthe case everywhere, to simplify
String lowerCaseContent = content.toLowerCase();
+
int index = 0;
while ((index = lowerCaseContent.indexOf("<a", index)) != -1) {
if ((index = lowerCaseContent.indexOf("href", index)) == -1) {
@@ -92,9 +130,9 @@
if ((strLink.length() > 0)
&& (strLink.indexOf("?") == -1)
&& (!"/".equals(strLink))) {
-// boolean added = false;
+ boolean added = false;
-// System.out.println("Link : " + strLink);
+ Logger.getLogger().debug("Link : " + strLink);
VirtualResourceLocator v =
new VirtualResourceLocator(parent, strLink);
@@ -107,12 +145,12 @@
//
if (!children.contains(v)) {
children.add(v);
-// added = true;
+ added = true;
}
-// if (added)
-// System.out.println(
-// "Selected : " + strLink);
+ if (added)
+ Logger.getLogger().debug(
+ "Selected : " + strLink);
}
}
catch (Exception e) {
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/VfsUtils.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/VfsUtils.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/io/VfsUtils.java Thu Jul 22 08:27:28 2004
@@ -117,7 +117,7 @@
public static List getChildren(FileObject folder)
throws IOException, MalformedURLException, FileSystemException {
-
+
List result = new ArrayList();
if (folder.getFileSystem().hasCapability(Capability.LIST_CHILDREN)) {
@@ -135,6 +135,8 @@
ArrayList list = new ArrayList();
InputStream urlStream = null;
+ //Logger.getLogger().debug("Extract HTML Links from VFS");
+
// try opening the URL
urlStream = null;
@@ -181,14 +183,14 @@
new StringTokenizer(remaining, "\t\n\r\">#");
String strLink = st.nextToken();
+ // Filter out dynamics... and mail
if ((strLink.length() > 0)
- && (strLink.indexOf("?") == -1)) {
-// boolean added = false;
+ && (strLink.indexOf("?") == -1)
+ && (!strLink.startsWith("mailto:"))) {
+ //boolean added = false;
FileObject f = folder.resolveFile(strLink);
- //
// Check not ".."
- //
if (!f.equals(folder.getParent())) {
//
@@ -201,8 +203,12 @@
//
if (!list.contains(f)) {
list.add(f);
-// added = true;
+ //added = true;
}
+
+ //if (added)
+ // Logger.getLogger().debug(
+ // "Selected : " + strLink);
}
}
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/VirtualResourceLocator.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/VirtualResourceLocator.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/VirtualResourceLocator.java Thu Jul 22 08:27:28 2004
@@ -55,6 +55,7 @@
public VirtualResourceLocator(VirtualResourceLocator context, String url) {
+ // If we have a protocol, we have an absolute URL
if (-1 != url.indexOf(":")) {
// Absolute URL
parseString(url);
@@ -88,6 +89,7 @@
else
m_protocol = Protocol.FILE_PROTOCOL;
+ // Crude, but.
m_isDirectory = m_url.endsWith("/");
}
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ChildVrlSelector.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ChildVrlSelector.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ChildVrlSelector.java Thu Jul 22 08:27:28 2004
@@ -24,7 +24,7 @@
* @author arb_jack
*/
public class ChildVrlSelector extends AbstractVrlSelector {
- VirtualResourceLocator m_parent = null;
+ private VirtualResourceLocator m_parent = null;
/**
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/MatchingVrlSelector.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/MatchingVrlSelector.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/MatchingVrlSelector.java Thu Jul 22 08:27:28 2004
@@ -26,7 +26,7 @@
* @author arb_jack
*/
public class MatchingVrlSelector extends AbstractVrlSelector {
- RegularExpressionSelector m_regexp = null;
+ private RegularExpressionSelector m_regexp = null;
/**
* @param expression
Modified: incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ProtocolVrlSelector.java
==============================================================================
--- incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ProtocolVrlSelector.java (original)
+++ incubator/depot/trunk/update/src/java/org/apache/depot/update/util/net/select/ProtocolVrlSelector.java Thu Jul 22 08:27:28 2004
@@ -26,9 +26,8 @@
* @author arb_jack
*/
public class ProtocolVrlSelector extends AbstractVrlSelector {
- Set m_protocols = null;
+ private Set m_protocols = null;
-
/**
* @param expression
*/