1 package gate.util.protocols.gate;
2
3 import java.io.*;
4 import java.io.FileNotFoundException;
5 import java.io.IOException;
6 import java.net.*;
7 import java.util.*;
8 import java.util.Iterator;
9 import java.util.Map;
10 import gate.GateConstants;
11 import gate.util.Files;
12
13
14
19 public class Handler extends URLStreamHandler {
20
21 protected URLConnection openConnection(URL u) throws java.io.IOException {
22 URL actualURL = Handler.class.getResource(
23 Files.getResourcePath() + u.getPath()
24 );
25 if(actualURL == null){
26 System.out.println(
27 "WARNING: Starting with the GATE v.3 release the gate:// URLs have " +
28 "been deprecated. All resources used by processing resources are now " +
29 "external to the GATE distribution.\n" +
30 "You should rebuild your application!\n" +
31 "The system will try to guess the location but " +
32 "there are no guarantees:");
33 File pluginHome = new File(
36 System.getProperty(GateConstants.GATE_HOME_SYSPROP_KEY),
37 "plugins");
38 Iterator pathIter = conversionMap.keySet().iterator();
39 while(pathIter.hasNext()){
40 String aPath = (String)pathIter.next();
41 if(u.getPath().startsWith(aPath)){
42 String oldPath = u.getPath();
43 String newPath = oldPath.replaceFirst(aPath,
44 (String)conversionMap.get(aPath));
45 actualURL = new File(pluginHome, newPath).toURL();
46 System.out.println(u.toExternalForm() + " ---> " +
47 actualURL.toExternalForm() + "\n");
48 return actualURL.openConnection();
49 }
50 }
51 }
52 if(actualURL == null) throw new FileNotFoundException(u.toExternalForm());
53 return actualURL.openConnection();
54 }
55
56 static Map conversionMap;
57 static{
58 conversionMap = new HashMap();
59 conversionMap.put("/creole/BengaliNE", "ANNIE/resources/BengaliNE");
60 conversionMap.put("/creole/chunker/VP", "ANNIE/resources/VP/");
61 conversionMap.put("/creole/gazeteer", "ANNIE/resources/gazetteer/");
62 conversionMap.put("/creole/heptag", "ANNIE/resources/heptag/");
63 conversionMap.put("/creole/morph", "Tools/resources/morph/");
64 conversionMap.put("/creole/namematcher", "ANNIE/resources/othomatcher/");
65 conversionMap.put("/creole/ontology", "Ontology_Tools/resources/");
66 conversionMap.put("/creole/splitter", "ANNIE/resources/sentenceSplitter/");
67 conversionMap.put("/creole/tokeniser", "ANNIE/resources/tokeniser/");
68 conversionMap.put("/creole/transducer/NE", "ANNIE/resources/NE/");
69 }
70 }
71