1 import com.teamkonzept.lib.*; 2 import com.teamkonzept.web.*; 3 import com.teamkonzept.field.*; 4 import com.teamkonzept.field.db.queries.*; 5 import com.teamkonzept.db.*; 6 import com.teamkonzept.webman.*; 7 import com.teamkonzept.webman.db.*; 8 import de.webman.generator.*; 9 10 import java.io.*; 11 import java.util.*; 12 import java.sql.*; 13 import java.text.*; 14 import javax.servlet.http.*; 15 16 import org.apache.log4j.Category; 17 18 public class WebManPreview 19 { 20 21 private static Category cat = Category.getInstance(WebManPreview.class); 22 23 public static void main( String [] args ) throws Exception 30 { 31 String docRoot = args[0]; 32 String ownUrl = args[1]; 33 TKWebmanDBManager.initConnection ("/webmandb.ini",false); 34 TKUploadField.initStaticsForUpload(docRoot); 36 37 String stdInData = null; 38 39 if (args.length < 3) 41 { 42 int bufSize = 10; 43 byte inBuf[] = new byte[bufSize]; 44 int offset = 0; 45 46 do { 47 int run = bufSize-offset; 48 if (run <= 0) { 49 run += bufSize; 50 bufSize = bufSize*2; 51 byte tmp[] = new byte[bufSize]; 52 System.arraycopy (inBuf,0,tmp,0,offset); 53 inBuf = tmp; 54 } 55 56 int n = System.in.read (inBuf,offset,run); 57 if (n <= 0) break; 58 59 offset += n; 60 61 } while (true); 62 63 stdInData = new String (inBuf,0,0,offset); 64 } 65 66 try { 67 registerAllFields(); 68 69 GeneratorContext.setup (); 70 GeneratorContext.setPreviewMode(true); 71 72 String queryString = args.length > 2 ? args[2] : stdInData; 73 if (queryString == null || queryString.length() == 0) { 74 75 cat.error ("Querystring fehlt"); 76 return; 77 } 78 79 TKHashtable pureParams; 80 Hashtable tmpHash = HttpUtils.parseQueryString(queryString); 81 if( tmpHash != null && tmpHash.size() > 0 ) { 82 pureParams = new TKHashtable( tmpHash.size() ); 83 Enumeration keys = tmpHash.keys(); 84 85 while( keys.hasMoreElements() ) { 86 Object key = keys.nextElement(); 87 Object val = tmpHash.get( key ); 88 if( val instanceof Object [] ) { 89 Object [] valVec = (Object [])val; 90 if( valVec.length > 1 ) { 91 pureParams.put( key, new TKVector( valVec ) ); 92 } 93 else { 94 pureParams.put( key, valVec[0] ); 95 } 96 } 97 else { 98 pureParams.put( key, val ); 99 } 100 } 101 } 102 else { 103 pureParams = new TKHashtable(); 104 } 105 106 TKParams params = new TKParams( pureParams ); 107 TKHashtable evClass = params.getClass( "EV" ); 108 Enumeration evEnum = ( evClass != null ? evClass.keys() : null ); 109 110 String event = ( evEnum != null && evEnum.hasMoreElements() ? 111 (String ) evEnum.nextElement() : null ); 112 113 Preview preview = new Preview (ownUrl,docRoot,params,System.out); 114 115 if (event == null) cat.error ("Wrong event: "+event); 116 117 else if (event.equalsIgnoreCase("CE_PREV_INDEX")) 118 preview.doPreviewIndexPerContent (); 119 120 else if (event.equalsIgnoreCase("CE_PREVIEW")) 121 preview.doPreview (); 122 123 else if (event.equalsIgnoreCase("ST_PREV_INDEX")) 124 preview.doPreviewIndexPerSiteNode (); 125 126 else cat.error ("Wrong event: "+event); 127 128 } 129 catch( Throwable e ) { 130 TKWebmanDBManager.deregister( true ); 131 cat.error("main", e); 132 } 133 134 TKWebmanDBManager.deregister( false ); 135 } 136 137 public static void registerAllFields() throws Throwable 138 { 139 140 TKQuery q = TKWebmanDBManager.newQuery( TKDBFormFieldClassGet.class ); 142 q.execute(); 143 ResultSet rs = q.fetchResultSet(); 144 145 TKVector classVector = new TKVector(); 147 while(rs.next()){ 148 String rowArray[] = { rs.getString("FIELD_TYPE"), rs.getString("FIELD_CLASS") }; 149 classVector.addElement(rowArray); 150 } 151 152 for (int i=0; i < classVector.size(); i++) { 154 Object element = classVector.elementAt(i); 155 String classInfoArray[] = (String []) element; 156 157 TKFieldRegistry.registry.registerClass(classInfoArray[0], classInfoArray[1]); 158 } 159 160 } 161 162 } 163 | Popular Tags |