rogerrut    2005/02/08 11:08:40

  Added:       components/rewriter/test/rewriter test-rewriter-rules.xml
                        default-rewriter-rules.xml test-001.html .cvsignore
                        test-remove-rules.xml
               components/rewriter project.properties project.xml
                        locator.ent .cvsignore maven.xml
               components/rewriter/src/java/org/apache/jetspeed/rewriter/html
                        SwingAttributes.java SwingParserAdaptor.java
               
components/rewriter/src/java/org/apache/jetspeed/rewriter/html/neko
                        NeckoHTMLParserAdapter.java URLRewriterFilter.java
                        CallbackElementRemover.java
                        XMLAttributesWrapper.java
               
components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/impl
                        RulesetImpl.java RuleImpl.java AttributeImpl.java
                        IdentifiedImpl.java TagImpl.java
               components/rewriter/src/java/org/apache/jetspeed/rewriter
                        MutableAttributes.java RulesetRewriterImpl.java
                        RewriterException.java RewriterController.java
                        Rewriter.java BasicRewriter.java
                        RulesetRewriter.java WebContentRewriter.java
                        AbstractRewriter.java ParserAdaptor.java
                        JetspeedRewriterController.java
               components/rewriter/src/java/org/apache/jetspeed/rewriter/rules
                        Identified.java Attribute.java Tag.java
                        Ruleset.java Rule.java
               components/rewriter/src/test/org/apache/jetspeed/rewriter
                        TestRewriterController.java UnitTestRewriter.java
               components/rewriter/src/java/org/apache/jetspeed/util
                        Streams.java
               components/rewriter/src/java/org/apache/jetspeed/rewriter/xml
                        SaxParserAdaptor.java
               components/rewriter/test/WEB-INF/conf
                        rewriter-rules-mapping.xml
  Log:
  Moved rewriter code from component jetspeed into it's own component
  
  Revision  Changes    Path
  1.2       +30 -0     
jakarta-jetspeed-2/components/rewriter/test/rewriter/test-rewriter-rules.xml
  
  
  
  
  1.2       +74 -0     
jakarta-jetspeed-2/components/rewriter/test/rewriter/default-rewriter-rules.xml
  
  
  
  
  1.2       +48 -0     
jakarta-jetspeed-2/components/rewriter/test/rewriter/test-001.html
  
  
  
  
  1.2       +1 -0      
jakarta-jetspeed-2/components/rewriter/test/rewriter/.cvsignore
  
  
  
  
  1.2       +26 -0     
jakarta-jetspeed-2/components/rewriter/test/rewriter/test-remove-rules.xml
  
  
  
  
  1.2       +20 -0     jakarta-jetspeed-2/components/rewriter/project.properties
  
  
  
  
  1.2       +121 -0    jakarta-jetspeed-2/components/rewriter/project.xml
  
  
  
  
  1.1                  jakarta-jetspeed-2/components/rewriter/locator.ent
  
  Index: locator.ent
  ===================================================================
  <!-- Project dependencies -->

  <!ENTITY spring-deps SYSTEM 
"file:../../etc/project-dependencies/spring-deps.xml">

  <!ENTITY db-ojb-deps SYSTEM 
"file:../../etc/project-dependencies/db-ojb-deps.xml">

  <!ENTITY commons-config-dep SYSTEM 
"file:../../etc/project-dependencies/commons-config-dep.xml">

  

  <!-- Project resources -->

  <!ENTITY db-ojb-resources SYSTEM 
"file:../../etc/project-resources/db-ojb-resources.xml">

  <!ENTITY log4j-resources SYSTEM 
"file:../../etc/project-resources/log4j-resources.xml">       

  

  <!-- Project reports -->

  <!ENTITY j2-reports SYSTEM "file:../../etc/project-reports/j2-reports.xml">
  
  
  1.2       +3 -0      jakarta-jetspeed-2/components/rewriter/.cvsignore
  
  
  
  
  1.2       +27 -0     jakarta-jetspeed-2/components/rewriter/maven.xml
  
  
  
  
  1.2       +178 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/html/SwingAttributes.java
  
  
  
  
  1.2       +543 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/html/SwingParserAdaptor.java
  
  
  
  
  1.1                  
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/html/neko/NeckoHTMLParserAdapter.java
  
  Index: NeckoHTMLParserAdapter.java
  ===================================================================
  /*
   * Copyright 2000-2001,2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.rewriter.html.neko;
  
  import java.io.Reader;
  import java.io.Writer;
  
  import org.apache.jetspeed.rewriter.ParserAdaptor;
  import org.apache.jetspeed.rewriter.Rewriter;
  import org.apache.jetspeed.rewriter.RewriterException;
  
  /**
   * <p>
   * NeckoHTMLParserAdapter
   * </p>
   * <p>
   *  
   * </p>
   * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver</a>
   * @version $Id: NeckoHTMLParserAdapter.java,v 1.1 2005/02/08 19:08:38 
rogerrut Exp $
   *
   */
  public class NeckoHTMLParserAdapter implements ParserAdaptor
  {
  
    
      /**
       * <p>
       * parse
       * </p>
       *
       * @see 
org.apache.jetspeed.rewriter.ParserAdaptor#parse(org.apache.jetspeed.rewriter.Rewriter,
 java.io.Reader)
       * @param rewriter
       * @param reader
       * @throws RewriterException
       */
      public void parse( Rewriter rewriter, Reader reader ) throws 
RewriterException
      {
          // TODO Auto-generated method stub
  
      }
  
      /**
       * <p>
       * rewrite
       * </p>
       *
       * @see 
org.apache.jetspeed.rewriter.ParserAdaptor#rewrite(org.apache.jetspeed.rewriter.Rewriter,
 java.io.Reader, java.io.Writer)
       * @param rewriter
       * @param reader
       * @param writer
       * @throws RewriterException
       */
      public void rewrite( Rewriter rewriter, Reader reader, Writer writer ) 
throws RewriterException
      {
          // TODO Auto-generated method stub
  
      }
  
  }
  
  
  
  1.1                  
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/html/neko/URLRewriterFilter.java
  
  Index: URLRewriterFilter.java
  ===================================================================
  /*
   * Copyright 2000-2001,2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.rewriter.html.neko;
  
  import org.apache.jetspeed.rewriter.Rewriter;
  import org.apache.xerces.xni.Augmentations;
  import org.apache.xerces.xni.QName;
  import org.apache.xerces.xni.XMLAttributes;
  import org.apache.xerces.xni.XMLString;
  import org.apache.xerces.xni.XNIException;
  import org.cyberneko.html.filters.DefaultFilter;
  
  /**
   * <p>
   * URLRewriterFilter
   * </p>
   * <p>
   * 
   * </p>
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver </a>
   * @version $Id: URLRewriterFilter.java,v 1.1 2005/02/08 19:08:38 rogerrut 
Exp $
   *  
   */
  public class URLRewriterFilter extends DefaultFilter
  {
      
      private Rewriter rewriter; 
      
      
      /**
       *  
       */
      public URLRewriterFilter(Rewriter rewriter )
      {
          super();
          this.rewriter = rewriter;
      }
          
  
      /**
       * <p>
       * startElement
       * </p>
       * 
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#startElement(org.apache.xerces.xni.QName,
       *      org.apache.xerces.xni.XMLAttributes,
       *      org.apache.xerces.xni.Augmentations)
       * @param element
       * @param attrs
       * @param augs
       * @throws org.apache.xerces.xni.XNIException
       */
      public void startElement( QName element, XMLAttributes attrs, 
Augmentations augs ) throws XNIException
      {
          if (false == rewriter.enterSimpleTagEvent(element.rawname, new 
XMLAttributesWrapper(attrs)))
          {
              doRewrite(element, attrs);
              String appended = rewriter.exitSimpleTagEvent(element.rawname, 
new XMLAttributesWrapper(attrs));
              if (null != appended)
              {
                //TODO: implement this!
              }
          }
          
          super.startElement(element, attrs, augs);
      }
  
      /**
       * <p>
       * doRewrite
       * </p>
       *
       * @param element
       * @param attrs
       */
      protected void doRewrite( QName element, XMLAttributes attrs )
      {
          if (element.rawname.equals("A"))
          {            
              rewriteAttribute("href", attrs);
          }
          else if (element.rawname.equals("FORM"))
          {            
              rewriteAttribute("action", attrs);
          }
      }
  
      protected void rewriteAttribute( String attrName, XMLAttributes 
attributes )
      {
  
          String uri = attributes.getValue(attrName);
          
          
          if (uri != null)
          {
                 // attributes.setValue(attributes.getIndex(attrName), 
urlGenerator.createUrl(uri));
           
          }
  
      }
      /**
       * <p>
       * emptyElement
       * </p>
       *
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#emptyElement(org.apache.xerces.xni.QName,
 org.apache.xerces.xni.XMLAttributes, org.apache.xerces.xni.Augmentations)
       * @param arg0
       * @param arg1
       * @param arg2
       * @throws org.apache.xerces.xni.XNIException
       */
      public void emptyElement( QName element, XMLAttributes attrs, 
Augmentations arg2 ) throws XNIException
      {
          doRewrite(element, attrs);
          super.emptyElement(element, attrs, arg2);
      }
      /**
       * <p>
       * comment
       * </p>
       *
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#comment(org.apache.xerces.xni.XMLString,
 org.apache.xerces.xni.Augmentations)
       * @param comment
       * @param augs
       * @throws org.apache.xerces.xni.XNIException
       */
      public void comment( XMLString comment, Augmentations augs ) throws 
XNIException
      {
          if (!rewriter.shouldRemoveComments())
          {
              super.comment(comment, augs);                  
          }
          
      }
      /**
       * <p>
       * endElement
       * </p>
       *
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#endElement(org.apache.xerces.xni.QName,
 org.apache.xerces.xni.Augmentations)
       * @param arg0
       * @param arg1
       * @throws org.apache.xerces.xni.XNIException
       */
      public void endElement( QName element, Augmentations augs ) throws 
XNIException
      {
          String elementName = element.rawname;
          
          
          super.endElement(element, augs);
      }
      /**
       * <p>
       * characters
       * </p>
       *
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#characters(org.apache.xerces.xni.XMLString,
 org.apache.xerces.xni.Augmentations)
       * @param arg0
       * @param arg1
       * @throws org.apache.xerces.xni.XNIException
       */
      public void characters( XMLString text, Augmentations arg1 ) throws 
XNIException
      {        
          if (!(text.ch[0] == '>') && ! rewriter.enterText(text.ch, 
text.offset))
          {                            
              super.characters(text, arg1);
          }         
      }
  }
  
  
  1.1                  
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/html/neko/CallbackElementRemover.java
  
  Index: CallbackElementRemover.java
  ===================================================================
  /*
   * Copyright 2000-2001,2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.rewriter.html.neko;
  
  import org.apache.jetspeed.rewriter.Rewriter;
  import org.apache.xerces.xni.Augmentations;
  import org.apache.xerces.xni.QName;
  import org.apache.xerces.xni.XMLAttributes;
  import org.apache.xerces.xni.XNIException;
  import org.cyberneko.html.filters.ElementRemover;
  
  /**
   * <p>
   * CallbackElementRemover
   * </p>
   * <p>
   *  Extended version of the NekoHTML ElementRemover which provides
   *  tag stripping/removal based on Rewriter settings.
   * </p>
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver </a>
   * @version $Id: CallbackElementRemover.java,v 1.1 2005/02/08 19:08:38 
rogerrut Exp $
   *  
   */
  public class CallbackElementRemover extends ElementRemover
  {
  
      private Rewriter rewriter;
  
      /**
       *  
       */
      public CallbackElementRemover( Rewriter rewriter )
      {
          super();
      }
  
      /**
       * <p>
       * emptyElement
       * </p>
       * 
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#emptyElement(org.apache.xerces.xni.QName,
       *      org.apache.xerces.xni.XMLAttributes,
       *      org.apache.xerces.xni.Augmentations)
       * @param element
       * @param arg1
       * @param arg2
       * @throws org.apache.xerces.xni.XNIException
       */
      public void emptyElement( QName element, XMLAttributes arg1, 
Augmentations arg2 ) throws XNIException
      {
          processTag(element.rawname);
          super.emptyElement(element, arg1, arg2);
      }
  
      /**
       * <p>
       * processTag
       * </p>
       * 
       * @param tag
       */
      protected void processTag( String tag )
      {
          if (!fAcceptedElements.contains(tag.toLowerCase()) && 
!fRemovedElements.contains(tag.toLowerCase()))
          {
              if (!rewriter.shouldRemoveTag(tag) && 
!rewriter.shouldStripTag(tag))
              {
                  acceptElement(tag, null);
              }
              else if (rewriter.shouldStripTag(tag))
              {
                  removeElement(tag);
              }
          }
      }
  
      /**
       * <p>
       * startElement
       * </p>
       * 
       * @see 
org.apache.xerces.xni.XMLDocumentHandler#startElement(org.apache.xerces.xni.QName,
       *      org.apache.xerces.xni.XMLAttributes,
       *      org.apache.xerces.xni.Augmentations)
       * @param element
       * @param arg1
       * @param arg2
       * @throws org.apache.xerces.xni.XNIException
       */
      public void startElement( QName element, XMLAttributes arg1, 
Augmentations arg2 ) throws XNIException
      {
          processTag(element.rawname);
          super.startElement(element, arg1, arg2);
      }
  }
  
  
  1.1                  
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/html/neko/XMLAttributesWrapper.java
  
  Index: XMLAttributesWrapper.java
  ===================================================================
  /*
   * Copyright 2000-2001,2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.rewriter.html.neko;
  
  import org.apache.jetspeed.rewriter.MutableAttributes;
  import org.apache.xerces.xni.Augmentations;
  import org.apache.xerces.xni.QName;
  import org.apache.xerces.xni.XMLAttributes;
  
  /**
   * <p>
   * XMLAttributesWrapper
   * </p>
   * <p>
   *
   * </p>
   * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver</a>
   * @version $Id: XMLAttributesWrapper.java,v 1.1 2005/02/08 19:08:38 rogerrut 
Exp $
   *
   */
  public class XMLAttributesWrapper implements MutableAttributes
  {
      protected XMLAttributes attrs;
      
      /**
       * 
       */
      public XMLAttributesWrapper(XMLAttributes attrs)
      {
          super();
          this.attrs = attrs;
      }
  
      /**
       * <p>
       * addAttribute
       * </p>
       *
       * @param arg0
       * @param arg1
       * @param arg2
       * @return
       */
      public int addAttribute( QName arg0, String arg1, String arg2 )
      {
          return attrs.addAttribute(arg0, arg1, arg2);
      }
      /**
       * <p>
       * equals
       * </p>
       *
       * @see java.lang.Object#equals(java.lang.Object)
       * @param obj
       * @return
       */
      public boolean equals( Object obj )
      {
          return attrs.equals(obj);
      }
      /**
       * <p>
       * getAugmentations
       * </p>
       *
       * @param arg0
       * @return
       */
      public Augmentations getAugmentations( int arg0 )
      {
          return attrs.getAugmentations(arg0);
      }
      /**
       * <p>
       * getAugmentations
       * </p>
       *
       * @param arg0
       * @return
       */
      public Augmentations getAugmentations( String arg0 )
      {
          return attrs.getAugmentations(arg0);
      }
      /**
       * <p>
       * getAugmentations
       * </p>
       *
       * @param arg0
       * @param arg1
       * @return
       */
      public Augmentations getAugmentations( String arg0, String arg1 )
      {
          return attrs.getAugmentations(arg0, arg1);
      }
      /**
       * <p>
       * getIndex
       * </p>
       *
       * @param arg0
       * @return
       */
      public int getIndex( String arg0 )
      {
          return attrs.getIndex(arg0);
      }
      /**
       * <p>
       * getIndex
       * </p>
       *
       * @param arg0
       * @param arg1
       * @return
       */
      public int getIndex( String arg0, String arg1 )
      {
          return attrs.getIndex(arg0, arg1);
      }
      /**
       * <p>
       * getLength
       * </p>
       *
       * @return
       */
      public int getLength()
      {
          return attrs.getLength();
      }
      /**
       * <p>
       * getLocalName
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getLocalName( int arg0 )
      {
          return attrs.getLocalName(arg0);
      }
      /**
       * <p>
       * getName
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void getName( int arg0, QName arg1 )
      {
          attrs.getName(arg0, arg1);
      }
      /**
       * <p>
       * getNonNormalizedValue
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getNonNormalizedValue( int arg0 )
      {
          return attrs.getNonNormalizedValue(arg0);
      }
      /**
       * <p>
       * getPrefix
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getPrefix( int arg0 )
      {
          return attrs.getPrefix(arg0);
      }
      /**
       * <p>
       * getQName
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getQName( int arg0 )
      {
          return attrs.getQName(arg0);
      }
      /**
       * <p>
       * getType
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getType( int arg0 )
      {
          return attrs.getType(arg0);
      }
      /**
       * <p>
       * getType
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getType( String arg0 )
      {
          return attrs.getType(arg0);
      }
      /**
       * <p>
       * getType
       * </p>
       *
       * @param arg0
       * @param arg1
       * @return
       */
      public String getType( String arg0, String arg1 )
      {
          return attrs.getType(arg0, arg1);
      }
      /**
       * <p>
       * getURI
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getURI( int arg0 )
      {
          return attrs.getURI(arg0);
      }
      /**
       * <p>
       * getValue
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getValue( int arg0 )
      {
          return attrs.getValue(arg0);
      }
      /**
       * <p>
       * getValue
       * </p>
       *
       * @param arg0
       * @return
       */
      public String getValue( String arg0 )
      {
          return attrs.getValue(arg0);
      }
      /**
       * <p>
       * getValue
       * </p>
       *
       * @param arg0
       * @param arg1
       * @return
       */
      public String getValue( String arg0, String arg1 )
      {
          return attrs.getValue(arg0, arg1);
      }
      /**
       * <p>
       * hashCode
       * </p>
       *
       * @see java.lang.Object#hashCode()
       * @return
       */
      public int hashCode()
      {
          return attrs.hashCode();
      }
      /**
       * <p>
       * isSpecified
       * </p>
       *
       * @param arg0
       * @return
       */
      public boolean isSpecified( int arg0 )
      {
          return attrs.isSpecified(arg0);
      }
      /**
       * <p>
       * removeAllAttributes
       * </p>
       *
       * 
       */
      public void removeAllAttributes()
      {
          attrs.removeAllAttributes();
      }
      /**
       * <p>
       * removeAttributeAt
       * </p>
       *
       * @param arg0
       */
      public void removeAttributeAt( int arg0 )
      {
          attrs.removeAttributeAt(arg0);
      }
      /**
       * <p>
       * setAugmentations
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void setAugmentations( int arg0, Augmentations arg1 )
      {
          attrs.setAugmentations(arg0, arg1);
      }
      /**
       * <p>
       * setName
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void setName( int arg0, QName arg1 )
      {
          attrs.setName(arg0, arg1);
      }
      /**
       * <p>
       * setNonNormalizedValue
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void setNonNormalizedValue( int arg0, String arg1 )
      {
          attrs.setNonNormalizedValue(arg0, arg1);
      }
      /**
       * <p>
       * setSpecified
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void setSpecified( int arg0, boolean arg1 )
      {
          attrs.setSpecified(arg0, arg1);
      }
      /**
       * <p>
       * setType
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void setType( int arg0, String arg1 )
      {
          attrs.setType(arg0, arg1);
      }
      /**
       * <p>
       * setValue
       * </p>
       *
       * @param arg0
       * @param arg1
       */
      public void setValue( int arg0, String arg1 )
      {
          attrs.setValue(arg0, arg1);
      }
      /**
       * <p>
       * toString
       * </p>
       *
       * @see java.lang.Object#toString()
       * @return
       */
      public String toString()
      {
          return attrs.toString();
      }
      /**
       * <p>
       * addAttribute
       * </p>
       *
       * @see 
org.apache.jetspeed.rewriter.MutableAttributes#addAttribute(java.lang.String, 
java.lang.Object)
       * @param name
       * @param value
       */
      public void addAttribute( String name, Object value )
      {
          addAttribute(new QName(null, name.toUpperCase(), name.toUpperCase(), 
null),"CDATA", value.toString());
  
      }
  }
  
  
  
  1.2       +189 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/impl/RulesetImpl.java
  
  
  
  
  1.2       +133 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/impl/RuleImpl.java
  
  
  
  
  1.2       +79 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/impl/AttributeImpl.java
  
  
  
  
  1.2       +47 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/impl/IdentifiedImpl.java
  
  
  
  
  1.2       +104 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/impl/TagImpl.java
  
  
  
  
  1.2       +38 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/MutableAttributes.java
  
  
  
  
  1.2       +196 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/RulesetRewriterImpl.java
  
  
  
  
  1.2       +70 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/RewriterException.java
  
  
  
  
  1.2       +83 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/RewriterController.java
  
  
  
  
  1.2       +201 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/Rewriter.java
  
  
  
  
  1.2       +95 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/BasicRewriter.java
  
  
  
  
  1.2       +41 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/RulesetRewriter.java
  
  
  
  
  1.1                  
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/WebContentRewriter.java
  
  Index: WebContentRewriter.java
  ===================================================================
  /* Copyright 2004 Apache Software Foundation
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.jetspeed.rewriter;
  
  import java.net.URL;
  
  import javax.portlet.PortletURL;
  
  /**
   * WebContentRewriter
   * 
   * @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann </a>
   * @version $Id: WebContentRewriter.java,v 1.1 2005/02/08 19:08:39 rogerrut 
Exp $
   */
  public class WebContentRewriter extends RulesetRewriterImpl implements 
Rewriter
  {
  
      /** WebContentURL */
      public static final String ACTION_PARAMETER_URL = "WCURL";
  
      /*
       * Portlet URL will be used to replace all URL's
       */
      private PortletURL actionURL = null;
  
      /**
       * Setters/getters for members
       */
      public void setActionURL(PortletURL action)
      {
          this.actionURL = action;
      }
  
      public PortletURL getActionURL()
      {
          return this.actionURL;
      }
  
      /**
       * rewriteURL
       * 
       * @param url
       * @param tag
       * @param attribute
       * @return the modified url which is a portlet action
       * 
       * Rewrites all urls HREFS with a portlet action
       */
      public String rewriteUrl(String url, String tag, String attribute)
      {
           String modifiedURL = url;
          
          // Any relative URL needs to be converted to a full URL
          if (url.startsWith("/") || (!url.startsWith("http:") && 
!url.startsWith("https:"))) 
          {
              try
              {
                  if (this.getBaseUrl() != null)
                  {
                      URL full = new URL(new URL(this.getBaseUrl()), url);
                      modifiedURL = full.toString();
                    }
                    else
                    {
                        modifiedURL = url; // leave as is
                    }
              }
              catch (Exception e)
              {
                  modifiedURL = url;
              }
          }
           
          // Only add PortletActions to URL's which are anchors (tag=a) and 
HREF's (attribute= HREF) -- ignore all others links
          if ( tag.compareToIgnoreCase("A") == 0 && 
attribute.compareToIgnoreCase("HREF") == 0)
          {
                  // Regular URL just add a portlet action
                  if (this.actionURL != null)
                  {
                      // create Action URL
                      actionURL.setParameter(ACTION_PARAMETER_URL, modifiedURL);
                      modifiedURL = actionURL.toString();
                  }
          }
          
          return modifiedURL;
      }
  
      /*
       * (non-Javadoc)
       * 
       * @see 
org.apache.jetspeed.rewriter.Rewriter#shouldRemoveTag(java.lang.String)
       */
      /*
       * public boolean shouldRemoveTag(String tag) { if
       * (tag.equalsIgnoreCase("html")) { return true; } return false; }
       */
  
      /*
       * (non-Javadoc)
       * 
       * @see 
org.apache.jetspeed.rewriter.Rewriter#shouldStripTag(java.lang.String)
       */
      /*
       * public boolean shouldStripTag(String tag) { if
       * (tag.equalsIgnoreCase("head")) { return true; } return false; }
       */
  
      /*
       * (non-Javadoc)
       * 
       * @see org.apache.jetspeed.rewriter.Rewriter#shouldRemoveComments()
       */
      /*
       * public boolean shouldRemoveComments() { return true; }
       */
  
  }
  
  
  1.2       +149 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/AbstractRewriter.java
  
  
  
  
  1.2       +51 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/ParserAdaptor.java
  
  
  
  
  1.2       +239 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/JetspeedRewriterController.java
  
  
  
  
  1.2       +40 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/Identified.java
  
  
  
  
  1.2       +39 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/Attribute.java
  
  
  
  
  1.2       +72 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/Tag.java
  
  
  
  
  1.2       +79 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/Ruleset.java
  
  
  
  
  1.2       +81 -0     
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/rules/Rule.java
  
  
  
  
  1.2       +325 -0    
jakarta-jetspeed-2/components/rewriter/src/test/org/apache/jetspeed/rewriter/TestRewriterController.java
  
  
  
  
  1.2       +72 -0     
jakarta-jetspeed-2/components/rewriter/src/test/org/apache/jetspeed/rewriter/UnitTestRewriter.java
  
  
  
  
  1.2       +142 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/util/Streams.java
  
  
  
  
  1.2       +316 -0    
jakarta-jetspeed-2/components/rewriter/src/java/org/apache/jetspeed/rewriter/xml/SaxParserAdaptor.java
  
  
  
  
  1.2       +104 -0    
jakarta-jetspeed-2/components/rewriter/test/WEB-INF/conf/rewriter-rules-mapping.xml
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to