Mercurial Hosting > luan
annotate core/src/luan/modules/Utils.java @ 690:6a489a6b3cbc
fix theme security
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 18 Apr 2016 17:20:08 -0600 |
parents | cdc70de628b5 |
children | a21e9594307d |
rev | line source |
---|---|
167
4c0131c2b650
merge luan/lib into modules
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
1 package luan.modules; |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
2 |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
3 import java.io.Reader; |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
4 import java.io.IOException; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
5 import java.io.ByteArrayOutputStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
6 import java.io.InputStream; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
7 import java.io.OutputStream; |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
8 import java.io.File; |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
9 import java.net.URL; |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
10 import java.net.MalformedURLException; |
86
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
11 import luan.LuanException; |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
12 import luan.LuanTable; |
582
31926755689e
add Thread.synchronized
Franklin Schmidt <fschmidt@gmail.com>
parents:
578
diff
changeset
|
13 import luan.LuanFunction; |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
14 |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
15 |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
16 public final class Utils { |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
17 private Utils() {} // never |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
18 |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
115
diff
changeset
|
19 static final int bufSize = 8192; |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
20 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
21 private static void checkNotNull(Object v,String expected,int pos) throws LuanException { |
86
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
22 if( v == null ) |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
23 throw new LuanException("bad argument #"+pos+" ("+expected+" expected, got nil)"); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
24 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
25 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
26 public static void checkNotNull(String s,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
27 checkNotNull(s,"string",pos); |
86
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
28 } |
6db8f286fa6c
_ENV is per module, not global
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
75
diff
changeset
|
29 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
30 public static void checkNotNull(String s) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
31 checkNotNull(s,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
32 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
33 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
34 public static void checkNotNull(byte[] b,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
35 checkNotNull(b,"binary",pos); |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
36 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
37 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
38 public static void checkNotNull(byte[] b) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
39 checkNotNull(b,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
40 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
41 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
42 public static void checkNotNull(LuanTable t,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
43 checkNotNull(t,"table",pos); |
305
5e7450ac27f2
rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
44 } |
5e7450ac27f2
rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
260
diff
changeset
|
45 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
46 public static void checkNotNull(LuanTable t) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
47 checkNotNull(t,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
48 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
49 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
50 public static void checkNotNull(Number n,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
51 checkNotNull(n,"number",pos); |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
52 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
53 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
54 public static void checkNotNull(Number n) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
55 checkNotNull(n,1); |
637
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
56 } |
6ea90dc10375
bbcode parser now takes a quoter function
Franklin Schmidt <fschmidt@gmail.com>
parents:
582
diff
changeset
|
57 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
58 public static void checkNotNull(LuanFunction fn,int pos) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
59 checkNotNull(fn,"function",pos); |
251
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
60 } |
705d14f4d8ee
start web testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
237
diff
changeset
|
61 |
646
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
62 public static void checkNotNull(LuanFunction fn) throws LuanException { |
cdc70de628b5
simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents:
637
diff
changeset
|
63 checkNotNull(fn,1); |
582
31926755689e
add Thread.synchronized
Franklin Schmidt <fschmidt@gmail.com>
parents:
578
diff
changeset
|
64 } |
31926755689e
add Thread.synchronized
Franklin Schmidt <fschmidt@gmail.com>
parents:
578
diff
changeset
|
65 |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
66 public static String readAll(Reader in) |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
67 throws IOException |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
68 { |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
69 char[] a = new char[bufSize]; |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
70 StringBuilder buf = new StringBuilder(); |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
71 int n; |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
72 while( (n=in.read(a)) != -1 ) { |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
73 buf.append(a,0,n); |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
74 } |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
75 return buf.toString(); |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
76 } |
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
77 |
115
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
78 public static void copyAll(InputStream in,OutputStream out) |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
79 throws IOException |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
80 { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
81 byte[] a = new byte[bufSize]; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
82 int n; |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
83 while( (n=in.read(a)) != -1 ) { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
84 out.write(a,0,n); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
85 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
86 } |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
87 |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
88 public static byte[] readAll(InputStream in) |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
89 throws IOException |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
90 { |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
91 ByteArrayOutputStream out = new ByteArrayOutputStream(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
92 copyAll(in,out); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
93 return out.toByteArray(); |
eacf6ce1b47d
add IoLib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
88
diff
changeset
|
94 } |
237
97d175772fed
implement mmake
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
219
diff
changeset
|
95 /* |
161
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
96 public static boolean exists(File file) { |
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
97 try { |
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
98 return file.exists() && file.getName().equals(file.getCanonicalFile().getName()); |
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
99 } catch(IOException e) { |
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
100 throw new RuntimeException(e); |
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
101 } |
d310ebf4d6e7
add javaSearcher
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
143
diff
changeset
|
102 } |
237
97d175772fed
implement mmake
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
219
diff
changeset
|
103 */ |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
104 /* |
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
105 private static File toFile(String path) { |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
187
diff
changeset
|
106 if( path.contains("//") ) |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
187
diff
changeset
|
107 return null; |
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
187
diff
changeset
|
108 File file = new File(path); |
237
97d175772fed
implement mmake
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
219
diff
changeset
|
109 return file.exists() ? file : null; |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
110 } |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
111 |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
112 private static URL toUrl(String path) { |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
113 if( path.indexOf(':') == -1 ) |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
114 return null; |
258
4dfa86dbca45
rename "java:" to "classpath:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
115 if( path.startsWith("classpath:") ) { |
4dfa86dbca45
rename "java:" to "classpath:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
251
diff
changeset
|
116 path = path.substring(10); |
187
1cb298d918b2
ban "//" in file and java paths
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
117 if( path.contains("//") ) |
1cb298d918b2
ban "//" in file and java paths
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
118 return null; |
219
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
119 URL url; |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
120 if( !path.contains("#") ) { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
121 url = ClassLoader.getSystemResource(path); |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
122 } else { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
123 String[] a = path.split("#"); |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
124 url = ClassLoader.getSystemResource(a[0]); |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
125 if( url==null ) { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
126 for( int i=1; i<a.length; i++ ) { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
127 url = ClassLoader.getSystemResource(a[0]+"/"+a[i]); |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
128 if( url != null ) { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
129 try { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
130 url = new URL(url,"."); |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
131 } catch(MalformedURLException e) { |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
132 throw new RuntimeException(e); |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
133 } |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
134 break; |
f9e3e64132e1
improve rev 217, allow "java:" paths to include sample files to check in jars
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
216
diff
changeset
|
135 } |
216
a1b142f9c5c0
make Utils.toUrl() check for "index.html" or "index.html.luan" in dirs for jars (hack)
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
203
diff
changeset
|
136 } |
a1b142f9c5c0
make Utils.toUrl() check for "index.html" or "index.html.luan" in dirs for jars (hack)
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
203
diff
changeset
|
137 } |
a1b142f9c5c0
make Utils.toUrl() check for "index.html" or "index.html.luan" in dirs for jars (hack)
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
203
diff
changeset
|
138 } |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
187
diff
changeset
|
139 return url==null ? null : url; |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
140 } |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
141 try { |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
187
diff
changeset
|
142 return new URL(path); |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
143 } catch(MalformedURLException e) {} |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
144 return null; |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
145 } |
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
146 |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
147 static boolean exists(String path) { |
203
99eef1d0e706
IO security
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
187
diff
changeset
|
148 return toFile(path)!=null || toUrl(path)!=null; |
143
fcb81fa2df0d
handle urls and java resources as files
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
130
diff
changeset
|
149 } |
260
f1f7d8c7e94e
add Io.protocols
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
150 */ |
75
aa7538ae5fb6
can now load modules from classpath
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
151 } |