001: /*
002: * Copyright 1999-2004 The Apache Software Foundation
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.apache.jk.config;
018:
019: import java.io.File;
020: import java.io.FileWriter;
021: import java.io.IOException;
022: import java.io.PrintWriter;
023: import java.util.Vector;
024:
025: /* Naming conventions:
026:
027: JK_CONF_DIR == serverRoot/work ( XXX /jkConfig ? )
028:
029: - Each vhost has a sub-dir named after the canonycal name
030:
031: - For each webapp in a vhost, there is a separate WEBAPP_NAME.jkmap
032:
033: - In httpd.conf ( or equivalent servers ), in each virtual host you
034: should "Include JK_CONF_DIR/VHOST/jk_apache.conf". The config
035: file will contain the Alias declarations and other rules required
036: for apache operation. Same for other servers.
037:
038: - WebXml2Jk will be invoked by a config tool or automatically for each
039: webapp - it'll generate the WEBAPP.jkmap files and config fragments.
040:
041: WebXml2Jk will _not_ generate anything else but mappings.
042: It should _not_ try to guess locations or anything else - that's
043: another components' job.
044:
045: */
046:
047: /**
048: *
049: * @author Costin Manolache
050: */
051: public class GeneratorJk1 implements WebXml2Jk.MappingGenerator {
052: WebXml2Jk wxml;
053: String vhost;
054: String cpath;
055: String worker;
056: PrintWriter out;
057:
058: public void setWebXmlReader(WebXml2Jk wxml) {
059: this .wxml = wxml;
060: vhost = wxml.vhost;
061: cpath = wxml.cpath;
062: worker = wxml.worker;
063: }
064:
065: public void generateStart() throws IOException {
066: File base = wxml.getJkDir();
067: File outF = new File(base, "jk.conf");
068: out = new PrintWriter(new FileWriter(outF));
069:
070: out
071: .println("# This must be included in the virtual host section for "
072: + vhost);
073: }
074:
075: public void generateEnd() {
076: out.close();
077: }
078:
079: public void generateServletMapping(String servlet, String url) {
080: out.println("JkMount " + cpath + url + " " + worker);
081: }
082:
083: public void generateFilterMapping(String servlet, String url) {
084: out.println("JkMount " + cpath + url + " " + worker);
085: }
086:
087: public void generateLoginConfig(String loginPage, String errPage,
088: String authM) {
089: out.println("JkMount " + cpath + loginPage + " " + worker);
090: }
091:
092: public void generateErrorPage(int err, String location) {
093:
094: }
095:
096: public void generateMimeMapping(String ext, String type) {
097:
098: }
099:
100: public void generateWelcomeFiles(Vector wf) {
101:
102: }
103:
104: public void generateConstraints(Vector urls, Vector methods,
105: Vector roles, boolean isSSL) {
106: for (int i = 0; i < urls.size(); i++) {
107: String url = (String) urls.elementAt(i);
108:
109: out.println("JkMount " + cpath + url + " " + worker);
110: }
111: }
112: }
|