... so re-parsing might be possible.
package org.cacert.gigi;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.HashMap;
pages.put(RegisterPage.PATH, new RegisterPage());
pages.put(MailCertificateAdd.PATH, new MailCertificateAdd());
pages.put(MailOverview.DEFAULT_PATH, new MailOverview("My email addresses"));
- baseTemplate = new Template(new InputStreamReader(Gigi.class.getResourceAsStream("Gigi.templ")));
+ baseTemplate = new Template(Gigi.class.getResource("Gigi.templ"));
m = new Menu("Certificates", "cert", new MenuItem(MailOverview.DEFAULT_PATH, "Emails"), new MenuItem("",
"Client Certificates"), new MenuItem("", "Domains"), new MenuItem("", "Server Certificates"));
super.init();
package org.cacert.gigi.output;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
static Template normal;
static Template IE;
static {
- normal = new Template(new InputStreamReader(
- ClientCSRGenerate.class.getResourceAsStream("ClientCSRGenerate.templ")));
- IE = new Template(new InputStreamReader(
- ClientCSRGenerate.class.getResourceAsStream("ClientCSRGenerateIE.templ")));
+ normal = new Template(ClientCSRGenerate.class.getResource("ClientCSRGenerate.templ"));
+ IE = new Template(ClientCSRGenerate.class.getResource("ClientCSRGenerateIE.templ"));
}
public static void output(HttpServletRequest req, HttpServletResponse resp) {
import java.io.EOFException;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
+import java.net.URL;
import java.util.LinkedList;
import java.util.Map;
String[] contents;
Outputable[] vars;
+ URL source;
+
+ public Template(URL u) {
+ try {
+ source = u;
+ Reader r = new InputStreamReader(u.openStream(), "UTF-8");
+ parse(r);
+ } catch (IOException e) {
+ throw new Error(e);
+ }
+ }
+
public Template(Reader r) {
try {
- LinkedList<String> splitted = new LinkedList<String>();
- LinkedList<Outputable> commands = new LinkedList<Outputable>();
- StringBuffer buf = new StringBuffer();
- int ch = r.read();
- outer: while (true) {
- while (!endsWith(buf, "<?")) {
- if (ch == -1) {
- break outer;
- }
- buf.append((char) ch);
- ch = r.read();
- }
- buf.delete(buf.length() - 2, buf.length());
- splitted.add(buf.toString());
- buf.delete(0, buf.length());
- while (!endsWith(buf, "?>")) {
- buf.append((char) ch);
- ch = r.read();
- if (ch == -1) {
- throw new EOFException();
- }
+ parse(r);
+ } catch (IOException e) {
+ throw new Error(e);
+ }
+ }
+
+ private void parse(Reader r) throws IOException {
+ LinkedList<String> splitted = new LinkedList<String>();
+ LinkedList<Outputable> commands = new LinkedList<Outputable>();
+ StringBuffer buf = new StringBuffer();
+ int ch = r.read();
+ outer: while (true) {
+ while (!endsWith(buf, "<?")) {
+ if (ch == -1) {
+ break outer;
}
- buf.delete(buf.length() - 2, buf.length());
- commands.add(parseCommand(buf.toString()));
- buf.delete(0, buf.length());
+ buf.append((char) ch);
+ ch = r.read();
}
+ buf.delete(buf.length() - 2, buf.length());
splitted.add(buf.toString());
- contents = splitted.toArray(new String[splitted.size()]);
- vars = commands.toArray(new Outputable[commands.size()]);
- r.close();
- } catch (IOException e) {
- throw new Error(e);
+ buf.delete(0, buf.length());
+ while (!endsWith(buf, "?>")) {
+ buf.append((char) ch);
+ ch = r.read();
+ if (ch == -1) {
+ throw new EOFException();
+ }
+ }
+ buf.delete(buf.length() - 2, buf.length());
+ commands.add(parseCommand(buf.toString()));
+ buf.delete(0, buf.length());
}
+ splitted.add(buf.toString());
+ contents = splitted.toArray(new String[splitted.size()]);
+ vars = commands.toArray(new Outputable[commands.size()]);
+ r.close();
}
private boolean endsWith(StringBuffer buf, String string) {
package org.cacert.gigi.pages;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
+import java.net.URL;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
public Page(String title) {
this.title = title;
- try {
- InputStream resource = getClass().getResourceAsStream(getClass().getSimpleName() + ".templ");
- if (resource != null) {
- defaultTemplate = new Template(new InputStreamReader(resource, "UTF-8"));
- }
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
+ URL resource = getClass().getResource(getClass().getSimpleName() + ".templ");
+ if (resource != null) {
+ defaultTemplate = new Template(resource);
}
}
package org.cacert.gigi.pages.account;
-import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Map;
private static Template t;
static {
- t = new Template(
- new InputStreamReader(ChangePasswordPage.class.getResourceAsStream("ChangePasswordForm.templ")));
+ t = new Template(ChangePasswordPage.class.getResource("ChangePasswordForm.templ"));
}
@Override
package org.cacert.gigi.pages.main;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public Signup(HttpServletRequest hsr) {
super(hsr);
- try {
- t = new Template(new InputStreamReader(Signup.class.getResourceAsStream("Signup.templ"), "UTF-8"));
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
+ t = new Template(Signup.class.getResource("Signup.templ"));
buildup.setFname("");
buildup.setMname("");
buildup.setLname("");
package org.cacert.gigi.pages.wot;
-import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.ParseException;
User assuree;
static final Template templ;
static {
- templ = new Template(new InputStreamReader(AssuranceForm.class.getResourceAsStream("AssuranceForm.templ")));
+ templ = new Template(AssuranceForm.class.getResource("AssuranceForm.templ"));
}
public AssuranceForm(HttpServletRequest hsr, int assuree) {
package org.cacert.gigi.pages.wot;
import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public AssurePage() {
super("Assure someone");
- t = new Template(new InputStreamReader(AssuranceForm.class.getResourceAsStream("AssureeSearch.templ")));
+ t = new Template(AssuranceForm.class.getResource("AssureeSearch.templ"));
}