blob: f4ec04478d220c270caca32e6ba0a06c8afe6ee4 [file] [log] [blame]
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.netbeans.tools.tutorials;
import java.util.regex.Pattern;
/**
* Modifies some hrefs in links to the new Apache infrastructure.
*/
public final class NetBeansTutorialsLinkReviewer {
private static final String EXACT = "exact";
private static final String[][] PREFIXES = {
{
"http://java.sun.com/j2se/1.4.2/download.html",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"http://java.sun.com/j2se/1.4.2/ja/download.html",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"http://java.sun.com/j2se/1.4.2/jadownload.html",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"http://java.sun.com/j2se/1.5.0/download.jsp",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"http://java.sun.com/j2se/1.5.0/ja/download.html",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"http://netbeans.org/kb/docs",
"https://netbeans.apache.org/kb/docs"
},
{
"http://Platform.netbeans.org/tutorials",
"https://netbeans.apache.org/tutorials"
},
{
"http://bits.nbextras.org",
"https://bits.netbeans.org"
},
{
"http://blogs.sun.com",
"https://blogs.oracle.com"
},
{
"https://code.google.com/p/openmap/downloads/list",
"https://github.com/OpenMap-java/openmap/releases"
},
{
"http://core.netbeans.org/source/browse/*checkout*/core/swing/plaf/src/org/netbeans/swing/plaf/util/RelativeColor.java",
"https://github.com/apache/netbeans/blob/master/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/util/RelativeColor.java"
},
{
"http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/extra/org-netbeans-modules-uihandler-interactive.nbm",
"https://builds.apache.org/view/M-R/view/NetBeans/job/netbeans-linux/lastSuccessfulBuild/artifact/nbbuild/nbms/platform/org-netbeans-modules-uihandler.nbm"
},
{
"http://www.netbeans.info/downloads/",
"https://netbeans.apache.org/download/index.html",
EXACT
},
{
"http://download.netbeans.org",
"https://netbeans.apache.org/download/index.html",
EXACT
},
{
"https://netbeans.org/downloads",
"https://netbeans.apache.org/download/index.html",
EXACT
},
{
"http://graph.netbeans.org",
"https://netbeans.apache.org/graph"
},
{
"https://hg.netbeans.org/main/file/bdb88f1fa043/html",
"https://github.com/apache/netbeans/tree/master/ide/html"
},
{
"http://hg.netbeans.org/main/file/bdb88f1fa043/html/src/org/netbeans/modules/html/palette/items",
"https://github.com/apache/netbeans/tree/master/ide/html/src/org/netbeans/modules/html/palette/items"
},
{
"http://hg.netbeans.org/main/file/",
"https://github.com/apache/netbeans/"
},
{
"http://javacc.java.net",
"https://javacc.github.io/javacc/"
},
{
"http://java.net/projects/colorchooser/sources/svn/show/trunk/www/release?rev=82",
"http://web.archive.org/web/20120107130444/http://java.net:80/projects/colorchooser/sources/svn/show/trunk/www/release?rev=82"
},
{
"http://java.net/projects/javacc",
"http://web.archive.org/web/20170410180215/https://java.net/projects/javacc/"
},
{
"http://java.net/projects/javacc/downloads",
"http://web.archive.org/web/20170130015602/https://java.net/projects/javacc/downloads"
},
{
"http://java.net/projects/javacc",
"https://javacc.github.io/javacc/"
},
{
"http://java.net/projects/javafxbrowser",
"http://web.archive.org/web/20150927002527/https://java.net/projects/javafxbrowser"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.2/tutorials/CustomerProjectType",
"http://web.archive.org/web/20130305120247/http://java.net:80/projects/nb-api-samples/sources/api-samples/show/versions/7.2/tutorials/CustomerProjectType"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/GoogleToolbar",
"http://web.archive.org/web/20150523015116/https://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/GoogleToolbar"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/PaintApp",
"http://web.archive.org/web/20130131034823/http://java.net:80/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/PaintApp"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/selection-management/3-of-4/EventManager",
"http://web.archive.org/web/20130320045006/http://java.net:80/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/selection-management/3-of-4/EventManager"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/WordProcessor",
"http://web.archive.org/web/20130405002940/http://java.net:80/projects/nb-api-samples/sources/api-samples/show/versions/7.3/tutorials/WordProcessor"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/show/versions/8.0/tutorials/CountryCodeCompleter",
"http://web.archive.org/web/20150927111721/https://java.net/projects/nb-api-samples/sources/api-samples/show/versions/8.0/tutorials/CountryCodeCompleter"
},
{
"http://java.net/projects/nb-api-samples/sources/api-samples/",
"http://web.archive.org/web/20170409072842/http://java.net/projects/nb-api-samples/"
},
{
"http://java.net/projects/nbribbonbar/",
"http://web.archive.org/web/20161103225925/https://java.net/projects/nbribbonbar"
},
{
"http://java.net/projects/netbeans",
"http://web.archive.org/web/20170410015153/https://java.net/projects/netbeans"
},
{
"https://colorchooser.dev.java.net/",
"http://web.archive.org/web/20081119053233/http://colorchooser.dev.java.net/"
},
{
"http://www.netbeans.org/project/www/download/dev/javadoc/",
"https://bits.netbeans.org/dev/javadoc/"
},
{
"http://java.sun.com/j2se/1.3/docs/guide/",
"https://docs.oracle.com/javase/8/docs/technotes/guides/"
},
{
"http://www.netbeans.org/download/dev/javadoc/",
"https://bits.netbeans.org/dev/javadoc"
},
{
"http://netbeans.org/download/dev/javadoc",
"https://bits.netbeans.org/dev/javadoc"
},
{
"https://netbeans.org/download/dev/javadoc",
"https://bits.netbeans.org/dev/javadoc"
},
{
"https://netbeans.org/project/www/download/dev/javadoc/",
"https://bits.netbeans.org/dev/javadoc/"
},
{
"http://java.sun.com/j2se/1.4.2/docs/api/",
"https://docs.oracle.com/javase/8/docs/api/"
},
{
"http://docs.oracle.com/javase/1.4.2/docs/api/",
"https://docs.oracle.com/javase/8/docs/api/"
},
{
"http://java.sun.com/j2ee/1.4/docs/api/",
"https://docs.oracle.com/javaee/1.4/api/"
},
{
"http://java.sun.com/j2ee/",
"https://docs.oracle.com/javaee/"
},
{
"http://java.sun.com/j2se",
"https://docs.oracle.com/javase"
},
{
"http://java.sun.com/javase/downloads/index.jsp",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"http://java.sun.com/javase/downloads/index.jsp",
"https://www.oracle.com/technetwork/java/javase/downloads/index.html"
},
{
"https://jemmy.dev.java.net",
"https://hg.openjdk.java.net/code-tools/jemmy/v2/file/7f1077e65e78"
},
{
"http://jsourcery.com/output/sourceforge/g4j/0.3.12/siuying/gm/structure/GMThread.html",
"http://g4j.sourceforge.net/"
},
{
"http://mojo.codehaus.org/nbm-maven-plugin/",
"http://bits.netbeans.org/mavenutilities/nbm-maven-plugin/"
},
{
"https://netbeans.org/about/contact_form.html",
"http://netbeans.apache.org/community/mailing-lists.html",
EXACT
},
{
"https://netbeans.org/kb/trails",
"https://netbeans.apache.org/kb/docs",
},
{
"https://netbeans.org/issues/show_bug.cgi",
"https://bz.apache.org/netbeans/show_bug.cgi"
},
{
"https://netbeans.org/bugzilla/show_bug.cgi",
"https://bz.apache.org/netbeans/show_bug.cgi"
},
{
"https://netbeans.org/kb/docs",
"https://netbeans.apache.org/kb/docs"
},
{
"https://graph.netbeans.org",
"https://netbeans.apache.org/graph",
},
{
"http://graph.netbeans.org",
"https://netbeans.apache.org/graph",
},
{
"https://platform.netbeans.org/graph",
"https://netbeans.apache.org/graph"
},
{
"http://platform.netbeans.org/graph",
"https://netbeans.apache.org/graph"
},
{
"http://platform.netbeans.org/tutorials",
"https://netbeans.apache.org/tutorials"
},
{
"https://platform.netbeans.org/tutorials",
"https://netbeans.apache.org/tutorials"
},
{
"https://platform.netbeans.org",
"https://netbeans.apache.org/platform"
},
{
"http://www.sun.com/books/catalog/rich_client_programming.xml",
"https://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802"
},
{
"http://www.oracle.com/technetwork/java/javafx/overview/index.html",
"https://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html"
},
{
"https://wiki.netbeans.org/wiki/view/DevFaq",
"https://netbeans.apache.org/wiki/DevFaq"
},
{
"http://wiki.netbeans.org/wiki/view/DevFaq",
"https://netbeans.apache.org/wiki/DevFaq"
},
{
"http://wiki.netbeans.org/DevFaq",
"https://netbeans.apache.org/wiki/DevFaq"
},
{
"https://wiki.netbeans.org/DevFaq",
"https://netbeans.apache.org/wiki/DevFaq"
},
{
"https://wiki.netbeans.org/wiki/view/Dev",
"https://netbeans.apache.org/wiki/Dev"
},
{
"http://wiki.netbeans.org/wiki/view/Dev",
"https://netbeans.apache.org/wiki/Dev"
},
{
"http://wiki.netbeans.org/Dev",
"https://netbeans.apache.org/wiki/Dev"
},
{
"https://wiki.netbeans.org/Dev",
"https://netbeans.apache.org/wiki/Dev"
},
};
public static final String updateHREF(String href) {
String originalHREF = href;
if (href.indexOf("download") != -1) {
// System.out.println("Breakpoint! " + href); // Breakpoint
}
for (String[] prefixSet : PREFIXES) {
if (href.startsWith(prefixSet[0])) {
if (prefixSet.length == 3 && EXACT.equals(prefixSet[2])) {
href = prefixSet[1];
} else {
href = prefixSet[1] + href.substring(prefixSet[0].length());
}
break;
}
}
return href;
}
/**
* Quick & dirty tests.
*
* @param args
*/
public static void main(String[] args) {
final String[][] tests = {
{
"http://netbeans.org/kb/docs/a/b/c",
"https://netbeans.apache.org/kb/docs/a/b/c"
},
{
"http://Platform.netbeans.org/tutorials/nbm-windowsapi.html",
"https://netbeans.apache.org/tutorials/nbm-windowsapi.html"
},
{
"http://bits.nbextras.org/dev/javadoc/org-openide-dialogs/org/openide/NotifyDescriptor.html",
"https://bits.netbeans.org/dev/javadoc/org-openide-dialogs/org/openide/NotifyDescriptor.html"
},
{
"http://blogs.sun.com/geertjan/entry/creating_a_better_java_class",
"https://blogs.oracle.com/geertjan/entry/creating_a_better_java_class"
}
};
for (String[] test : tests) {
String result = updateHREF(test[0]);
if (!result.equals(test[1])) {
throw new IllegalArgumentException(String.format("%s is wrong: expected %s got %s",
test[0],
test[1],
result));
}
}
}
}