View Javadoc

1   /*
2    * Copyright 2000-2001,2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.apache.jetspeed.portal.portlets;
18  
19  
20  //Jetspeed stuff
21  import org.apache.jetspeed.portal.*;
22  import org.apache.jetspeed.util.*;
23  import org.apache.jetspeed.cache.disk.*;
24  
25  //standard java stuff
26  import java.io.*;
27  
28  /***
29   * <p>Serve a static URL (typically a HTML fragment)</p>
30   *
31   @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
32   @author <a href="mailto:sgala@apache.org">Santiago Gala</a>
33   @version $Id: FileServerPortlet.java,v 1.27 2004/02/23 04:03:33 jford Exp $ 
34  */
35  public class FileServerPortlet extends FileWatchPortlet {
36  
37      /***
38      */
39      public void init() throws PortletException {
40  
41          // first make sure we propagate init
42          super.init();
43          
44          PortletConfig config = this.getPortletConfig();
45          
46          //fetch the URL as a String...
47  
48          try {
49  
50              this.setContent( new JetspeedClearElement( this.getURL(  this.getPortletConfig().getURL() ) ) );
51  
52          } catch (Exception e) {
53              throw new PortletException( e.getMessage() );
54          }
55              
56         
57      }
58  
59      /***
60      */
61      private String getURL(String url) throws IOException {
62  
63          int CAPACITY = 1024;
64  
65          Reader rdr = JetspeedDiskCache.getInstance()
66              .getEntry( url ).getReader();
67          StringBuffer buffer = new StringBuffer();
68  
69          //now process the Reader...
70          char[] chars = new char[CAPACITY];
71  
72          int readCount = 0;
73          while( ( readCount = rdr.read( chars )) > 0 ) {
74  
75              buffer.append( chars, 0, readCount);
76          }
77  
78          rdr.close();
79  
80  
81          return buffer.toString();
82              
83  
84      }
85  
86  }