Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgreen2009-12-04 16:53:48 +0000
committerdgreen2009-12-04 16:53:48 +0000
commit42a57c60624fdac5989723ccc70d2238fb517a7a (patch)
tree505b8f3e5be7b51bf182e7baab5c5542ab02f880
parentded6aded9d3aecd29174c4a770b836b6d44a09a1 (diff)
downloadorg.eclipse.mylyn.tasks-42a57c60624fdac5989723ccc70d2238fb517a7a.tar.gz
org.eclipse.mylyn.tasks-42a57c60624fdac5989723ccc70d2238fb517a7a.tar.xz
org.eclipse.mylyn.tasks-42a57c60624fdac5989723ccc70d2238fb517a7a.zip
NEW - bug 294991: Update MediaWikiImageFetcher task to use MediaWiki API to determine image URLs
https://bugs.eclipse.org/bugs/show_bug.cgi?id=294991
-rw-r--r--org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF1
-rw-r--r--org.eclipse.mylyn.help.ui/build-helper.xml12
-rw-r--r--org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java147
-rw-r--r--org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties11
4 files changed, 5 insertions, 166 deletions
diff --git a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
index 2c190d0c7..dde7fcf3a 100644
--- a/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.help.ui/META-INF/MANIFEST.MF
@@ -13,5 +13,4 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.mylyn.commons.ui;bundle-version="[3.0.0,4.0.0)";resolution:=optional,
org.apache.ant;bundle-version="1.7.0";resolution:=optional
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.mylyn.internal.help.ui.anttask;x-internal:=true
Bundle-Localization: plugin
diff --git a/org.eclipse.mylyn.help.ui/build-helper.xml b/org.eclipse.mylyn.help.ui/build-helper.xml
index 20b760fee..4d554b823 100644
--- a/org.eclipse.mylyn.help.ui/build-helper.xml
+++ b/org.eclipse.mylyn.help.ui/build-helper.xml
@@ -28,7 +28,7 @@
<pathelement location="../org.eclipse.mylyn.wikitext.mediawiki.core/bin_ant"/>
</path>
- <taskdef classpathref="tasks.classpath" resource="org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties"/>
+ <taskdef classpathref="wikitext.tasks.classpath" resource="org/eclipse/mylyn/internal/wikitext/mediawiki/core/tasks/tasks.properties"/>
<taskdef classpathref="wikitext.tasks.classpath" resource="org/eclipse/mylyn/wikitext/core/util/anttask/tasks.properties"/>
<target name="init">
@@ -45,7 +45,7 @@
<eclipse-wiki-to-help
help.doc.filenamenoextension="Mylyn Reference"
help.doc.url.base="${mylyn.help.doc.url.base}"
- help.doc.url.html="${mylyn.help.doc.url.base}/Mylyn/User_Guide"
+ help.doc.pageName="Mylyn/User_Guide"
help.doc.url.xml="${mylyn.help.doc.url.base}/Special:Export/Mylyn/User_Guide"
help.imagefolder="${imageFolder}"
targetfolder="userguide"
@@ -58,19 +58,17 @@
<macrodef name="eclipse-wiki-to-help">
<attribute name="help.doc.url.base"/>
<attribute name="wiki.url.base"/>
- <attribute name="help.doc.url.html"/>
+ <attribute name="help.doc.pageName"/>
<attribute name="help.doc.url.xml"/>
<attribute name="help.doc.filenameNoExtension"/>
<attribute name="help.imageFolder"/>
<attribute name="targetFolder"/>
<sequential>
<get dest="tmp/help.doc.xml" src="@{help.doc.url.xml}"/>
- <get dest="tmp/help.doc.html" src="@{help.doc.url.html}"/>
-
<copy todir="tmp">
<fileset dir="images"/>
</copy>
- <mediawiki-fetch-images src="tmp/help.doc.html" dest="tmp" base="@{help.doc.url.base}"/>
+ <mediawiki-fetch-images dest="tmp" url="@{help.doc.url.base}" pageName="@{help.doc.pageName}"/>
<xslt style="extract-markup.xsl" in="tmp/help.doc.xml" out="tmp/@{help.doc.filenameNoExtension}.mediawiki"/>
<echo append="true" file="tmp/@{help.doc.filenameNoExtension}.mediawiki">
@@ -78,7 +76,7 @@
= Updating This Document =
This document is maintained in a collaborative wiki. If you wish to update or modify this document please visit
-@{help.doc.url.html}
+@{help.doc.url.base}/@{help.doc.pageName}
</echo>
<wikitext-to-eclipse-help markupLanguage="org.eclipse.mylyn.wikitext.mediawiki.core.MediaWikiLanguage"
diff --git a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java b/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java
deleted file mode 100644
index 8726b813b..000000000
--- a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/MediaWikiImageFetcher.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 David Green and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * David Green - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.help.ui.anttask;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.taskdefs.Get;
-
-/**
- * Fetch images from a MediaWiki-generated HTML page source
- *
- * @author David Green
- */
-public class MediaWikiImageFetcher extends Task {
-
- private String base;
-
- private File dest;
-
- private File src;
-
- @Override
- public void execute() throws BuildException {
- if (dest == null) {
- throw new BuildException("Must specify @dest"); //$NON-NLS-1$
- }
- if (!dest.exists()) {
- throw new BuildException("@dest does not exist: " + dest); //$NON-NLS-1$
- }
- if (!dest.isDirectory()) {
- throw new BuildException("@dest is not a directory: " + dest); //$NON-NLS-1$
- }
- if (src == null) {
- throw new BuildException("Must specify @src"); //$NON-NLS-1$
- }
- if (!src.exists()) {
- throw new BuildException("@src does not exist: " + src); //$NON-NLS-1$
- }
- if (!src.isFile()) {
- throw new BuildException("@src is not a file: " + src); //$NON-NLS-1$
- }
- if (base == null) {
- throw new BuildException("Must specify @base"); //$NON-NLS-1$
- }
- if (base.endsWith("/")) { //$NON-NLS-1$
- base = base.substring(0, base.length() - 1);
- }
- Pattern fragmentUrlPattern = Pattern.compile("src=\"([^\"]+)\""); //$NON-NLS-1$
- Pattern imagePattern = Pattern.compile("alt=\"Image:([^\"]*)\"([^>]+)", Pattern.MULTILINE); //$NON-NLS-1$
- String htmlSrc;
- try {
- htmlSrc = readSrc();
- } catch (IOException e) {
- throw new BuildException("Cannot read src: " + src + ": " + e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$
- }
- log("Parsing " + src, Project.MSG_INFO); //$NON-NLS-1$
- int fileCount = 0;
- Matcher imagePatternMatcher = imagePattern.matcher(htmlSrc);
- while (imagePatternMatcher.find()) {
- String alt = imagePatternMatcher.group(1);
- String imageFragment = imagePatternMatcher.group(2);
- if (imageFragment != null) {
- Matcher fragmentUrlMatcher = fragmentUrlPattern.matcher(imageFragment);
- if (fragmentUrlMatcher.find()) {
- String url = fragmentUrlMatcher.group(1);
- String qualifiedUrl = base + url;
- log("Fetching " + qualifiedUrl, Project.MSG_INFO); //$NON-NLS-1$
- Get get = new Get();
- get.setProject(getProject());
- get.setLocation(getLocation());
- try {
- get.setSrc(new URL(qualifiedUrl));
- } catch (MalformedURLException e) {
- log("Skipping " + url + ": " + e.getMessage(), Project.MSG_WARN); //$NON-NLS-1$ //$NON-NLS-2$
- continue;
- }
- // note: we use the alt text for the name since for some files there is a case-difference between
- // the server URL and the text used in the image src of the markup
- String name = alt == null ? url.substring(url.lastIndexOf('/')) : alt;
- get.setDest(new File(dest, name));
- get.execute();
- ++fileCount;
- }
- }
- }
- log("Fetched " + fileCount + " image files for " + src, Project.MSG_INFO); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public String getBase() {
- return base;
- }
-
- public File getDest() {
- return dest;
- }
-
- public File getSrc() {
- return src;
- }
-
- private String readSrc() throws IOException {
- StringBuilder buf = new StringBuilder((int) src.length());
- Reader reader = new BufferedReader(new FileReader(src));
- try {
- int i;
- while ((i = reader.read()) != -1) {
- buf.append((char) i);
- }
- } finally {
- reader.close();
- }
- return buf.toString();
- }
-
- public void setBase(String base) {
- this.base = base;
- }
-
- public void setDest(File dest) {
- this.dest = dest;
- }
-
- public void setSrc(File src) {
- this.src = src;
- }
-
-}
diff --git a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties b/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties
deleted file mode 100644
index 33848771c..000000000
--- a/org.eclipse.mylyn.help.ui/src/org/eclipse/mylyn/internal/help/ui/anttask/tasks.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 Tasktop Technologies and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# Tasktop Technologies - initial API and implementation
-###############################################################################
-mediawiki-fetch-images=org.eclipse.mylyn.internal.help.ui.anttask.MediaWikiImageFetcher

Back to the top