You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/09/16 22:30:17 UTC

svn commit: r289648 [4/6] - in /beehive/trunk/netui: src/compiler-core/ src/compiler-core/org/apache/beehive/netui/compiler/ src/compiler-core/org/apache/beehive/netui/compiler/genmodel/ src/compiler-core/org/apache/beehive/netui/compiler/grammar/ src/...

Added: beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/AnnotationInterfaceParser.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/AnnotationInterfaceParser.java?rev=289648&view=auto
==============================================================================
--- beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/AnnotationInterfaceParser.java (added)
+++ beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/AnnotationInterfaceParser.java Fri Sep 16 13:27:57 2005
@@ -0,0 +1,404 @@
+/*
+ * Copyright 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.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.compiler.xdoclet.typesystem.impl.declaration;
+
+import org.apache.beehive.netui.compiler.JpfLanguageConstants;
+import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationTypeDeclaration;
+import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationTypeElementDeclaration;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StreamTokenizer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+
+public class AnnotationInterfaceParser implements JpfLanguageConstants {
+    private HashMap _memberArrayAnnotations = new HashMap();
+    private HashMap _memberAnnotations = new HashMap();
+    private HashSet _memberOrTopLevelAnnotations = new HashSet();
+    private String _annotationInterfacePrefix;
+
+
+    /** Map of String intermediate-name (e.g., "Jpf.Action") to AnnotationTypeDeclaration */
+    private HashMap _annotations = new HashMap();
+    private AnnotationTypeDeclaration[] _allAnnotations;
+
+    public AnnotationInterfaceParser(String annotationInterfacePrefix)
+    {
+        _annotationInterfacePrefix = annotationInterfacePrefix;
+        parseAnnotations();
+        _allAnnotations = ( AnnotationTypeDeclaration[] )
+                _annotations.values().toArray( new AnnotationTypeDeclaration[ _annotations.size() ] );
+    }
+    
+    public void addMemberAnnotation(String tagName, String parentAttribute)
+    {
+        _memberAnnotations.put(_annotationInterfacePrefix + tagName, parentAttribute);
+    }
+    
+    public void addMemberArrayAnnotation(String tagName, String parentAttribute)
+    {
+        _memberArrayAnnotations.put(_annotationInterfacePrefix + tagName, parentAttribute);
+    }
+    
+    public void addMemberOrTopLevelAnnotation(String tagName)
+    {
+        _memberOrTopLevelAnnotations.add(_annotationInterfacePrefix + tagName);
+    }
+
+    public AnnotationTypeDeclaration[] getAllAnnotations()
+    {
+        return _allAnnotations;
+    }
+    
+    public AnnotationTypeDeclaration getAnnotationTypeDecl(String tagName)
+    {
+        return (AnnotationTypeDeclaration) _annotations.get(tagName);
+    }
+
+    /**
+     * Get the name of the parent annotation member for the given tag.
+     */
+    public String getParentMemberName(String tagName)
+    {
+        return (String) _memberAnnotations.get(tagName);
+    }
+    
+    /**
+     * Get the name of the parent annotation array member for the given tag.
+     */
+    public String getParentMemberArrayName(String tagName)
+    {
+        return (String) _memberArrayAnnotations.get(tagName);
+    }
+    
+    public boolean isMemberOrTopLevelAnnotation(String tagName)
+    {
+        return _memberOrTopLevelAnnotations.contains(tagName);
+    }
+
+    private static StreamTokenizer getJavaTokenizer( Reader reader )
+    {
+        StreamTokenizer tok = new StreamTokenizer( reader );
+        tok.eolIsSignificant( false );
+        tok.lowerCaseMode( false );
+        tok.parseNumbers();
+        tok.slashSlashComments( true );
+        tok.slashStarComments( true );
+        tok.wordChars( '_', '_' );
+        tok.wordChars( '@', '@' );
+        tok.wordChars( '[', '[' );
+        tok.wordChars( ']', ']' );
+        tok.wordChars( '.', '.' );
+        tok.wordChars( '"', '"' );
+        tok.wordChars( '-', '-' );
+        return tok;
+    }
+
+    private void parseAnnotations()
+    {
+        String annotationsSource = ANNOTATIONS_CLASSNAME.replace( '.', '/' ) + ".java";
+        InputStream in = DeclarationImpl.class.getClassLoader().getResourceAsStream( annotationsSource );
+        assert in != null : "annotations source not found: " + annotationsSource;
+        BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
+        
+        try
+        {
+            HashMap enums = new HashMap();  // String enumTypeName -> HashSet values
+            StreamTokenizer tok = getJavaTokenizer( reader );
+
+
+            String interfaceQualifier = null;
+            String packageName = null;
+
+            while ( tok.nextToken() != StreamTokenizer.TT_EOF )
+            {
+                switch ( tok.ttype )
+                {
+                    case StreamTokenizer.TT_WORD:
+                        String str = tok.sval;
+
+                        if ( packageName == null && str.equals( "package" ) )
+                        {
+                            packageName = assertWord( tok );
+                        }
+                        else if ( str.equals( "public" ) )
+                        {
+                            str = assertWord( tok );
+
+                            if ( str.equals( "interface" ) )
+                            {
+                                interfaceQualifier = assertWord( tok ) + '.';
+                                assertChar( tok, '{' );
+                            }
+                            else if ( str.equals( "@interface" ) )
+                            {
+                                AnnotationTypeDeclarationImpl ann =
+                                        readAnnotation( tok, interfaceQualifier, packageName, enums );
+                                _annotations.put( ann.getIntermediateName(), ann );
+
+                                /* TODO: re-add in DeclarationImpl
+                                //
+                                // Special case:
+                                //     validationErrorForward=@Jpf.Forward(...)
+                                // looks like this in our world:
+                                //     @Jpf.ValidationErrorForward(...)
+                                // Here we dynamically create a new ValidationErrorForward annotation based on Forward.
+                                //
+                                if ( ann.getSimpleName().equals( FORWARD_TAG_NAME ) )
+                                {
+                                    AnnotationTypeDeclarationImpl validationErrorForwardAnn =
+                                        new AnnotationTypeDeclarationImpl( ann, VALIDATION_ERROR_FORWARD_TAG_NAME,
+                                                                           interfaceQualifier );
+                                    _annotations.put( ANNOTATION_INTERFACE_PREFIX + VALIDATION_ERROR_FORWARD_TAG_NAME,
+                                                     validationErrorForwardAnn );
+                                }
+                                */
+                            }
+                            else if ( str.equals( "enum" ) )
+                            {
+                                readEnum( tok, enums );
+                            }
+                        }
+                        else if ( str.charAt( 0 ) == '@' )
+                        {
+                            if (tok.nextToken() == '(')
+                            {
+                                ignoreAnnotation(tok);
+                            }
+                            else
+                            {
+                                tok.pushBack();
+                            }
+                        }
+                        break;
+
+                    case StreamTokenizer.TT_NUMBER:
+                        break;
+
+                    default:
+                        char c = ( char ) tok.ttype;
+
+                        if ( c == '}' )
+                        {
+                            assert interfaceQualifier != null;
+                            interfaceQualifier = null;
+                        }
+                }
+            }
+        }
+        catch ( IOException e )
+        {
+            e.printStackTrace();
+            assert false : e;
+        }
+        finally
+        {
+            try {
+                reader.close();
+            } catch (IOException e ) {
+                e.printStackTrace();
+                assert false : e;
+            }
+        }
+    }
+
+    private static String assertWord( StreamTokenizer tok )
+            throws IOException
+    {
+        tok.nextToken();
+        assert tok.ttype == StreamTokenizer.TT_WORD : tok.ttype;
+        return tok.sval;
+    }
+
+    private static void assertChar( StreamTokenizer tok, char c )
+        throws IOException
+    {
+        tok.nextToken();
+        assert tok.ttype == c : tok.ttype;
+    }
+
+    private static AnnotationTypeDeclarationImpl readAnnotation( StreamTokenizer tok, String interfaceQualifier,
+                                                                 String packageName, HashMap enums )
+        throws IOException
+    {
+        String annotationName = assertWord( tok );
+        ArrayList memberDecls = new ArrayList();
+        assertChar( tok, '{' );
+
+        while ( tok.nextToken() == StreamTokenizer.TT_WORD )
+        {
+            String memberType = tok.sval;
+            HashSet enumVals = ( HashSet ) enums.get( memberType );
+
+            tok.nextToken();
+            if ( tok.ttype == '<' ) // ignore generics
+            {
+                while ( tok.nextToken() != '>' )
+                {
+                    assert tok.ttype != StreamTokenizer.TT_EOF;
+                    assert tok.ttype != ';';
+                }
+                tok.nextToken();
+            }
+            assert tok.ttype == StreamTokenizer.TT_WORD;
+            String memberName = tok.sval;
+            assertChar( tok, '(' );
+            assertChar( tok, ')' );
+
+            Object defaultVal = null;
+
+            if ( tok.nextToken() == StreamTokenizer.TT_WORD )
+            {
+                assert tok.sval.equals( "default" );
+
+                tok.nextToken();
+                if ( tok.ttype == '{' )
+                {
+                    assertChar( tok, '}' );
+                    defaultVal = new ArrayList();
+                }
+                else
+                {
+                    assert tok.ttype == StreamTokenizer.TT_WORD || tok.ttype == StreamTokenizer.TT_NUMBER : tok.ttype;
+
+                    if ( tok.ttype == StreamTokenizer.TT_NUMBER )
+                    {
+                        defaultVal = getNumericDefaultVal( memberType, tok.nval );
+                    }
+                    else
+                    {
+                        String defaultString = tok.sval;
+
+                        if ( defaultString.charAt( 0 ) == '@' )
+                        {
+                            // It's a default value that is an annotation.  We ignore these for now.
+                            ignoreAnnotation( tok );
+                        }
+                        else
+                        {
+                            if ( memberType.equals( "String" ) )
+                            {
+                                assert defaultString.charAt( 0 ) == '"' : defaultString;
+                                int len = defaultString.length();
+                                assert len > 1 && defaultString.charAt( len - 1 ) == '"' : defaultString;
+                                defaultVal = defaultString.substring( 0, len - 1 );
+                            }
+                            else if ( memberType.equals( "boolean" ) )
+                            {
+                                defaultVal = Boolean.valueOf( defaultString );
+                            }
+                            else if ( memberType.equals( "Class") )
+                            {
+                                assert defaultString.endsWith( ".class" );
+                                defaultVal = defaultString.substring( 0, defaultString.indexOf( ".class" ) );
+                            }
+                            else
+                            {
+                                defaultVal = readDefaultEnumVal( defaultString, memberType, enumVals );
+                            }
+                        }
+                    }
+                }
+
+                tok.nextToken();
+            }
+
+            assert tok.ttype == ';';
+
+            if ( enumVals != null ) memberType = "String";
+            memberDecls.add( new AnnotationTypeElementDeclarationImpl( memberName, memberType, defaultVal, enumVals ) );
+        }
+
+        assert tok.ttype == '}';
+
+        AnnotationTypeElementDeclaration[] memberArray = ( AnnotationTypeElementDeclaration[] )
+                memberDecls.toArray( new AnnotationTypeElementDeclaration[ memberDecls.size() ] );
+        return new AnnotationTypeDeclarationImpl( annotationName, interfaceQualifier, packageName, memberArray );
+    }
+
+    private static String readDefaultEnumVal( String defaultString, String memberType, HashSet enumVals )
+    {
+        int dot = defaultString.indexOf( '.' );
+        assert dot != -1 : "expected an enum value: " + defaultString;
+        String type = defaultString.substring( 0, dot );
+        assert type.equals( memberType ) : "expected enum " + memberType + ", got " + type;
+        assert enumVals != null : "no enum " + memberType
+                                  + " defined; currently, enum must be defined before its use";
+        String defaultVal = defaultString.substring( dot + 1 );
+        assert enumVals.contains( defaultVal ) :
+                "invalid enum field " + defaultVal + " on enum " + type;
+        return defaultVal;
+    }
+
+    private static Object getNumericDefaultVal( String expectedType, double defaultNumber )
+    {
+        if ( expectedType.equals( "int" ) )
+        {
+            return new Integer( ( int ) defaultNumber );
+        }
+        else if ( expectedType.equals( "long" ) )
+        {
+            return new Long( ( long ) defaultNumber );
+        }
+        else if ( expectedType.equals( "float" ) )
+        {
+            return new Float( ( float ) defaultNumber );
+        }
+        else if ( expectedType.equals( "double" ) )
+        {
+            return new Double( defaultNumber );
+        }
+
+        assert false : "type " + expectedType + " cannot accept value " + defaultNumber;
+        return null;
+    }
+
+    private static void ignoreAnnotation( StreamTokenizer tok )
+        throws IOException
+    {
+        while ( tok.nextToken() != ')' )
+        {
+            assert tok.ttype != StreamTokenizer.TT_EOF;
+            assert tok.ttype != ';';
+        }
+    }
+
+    private static void readEnum( StreamTokenizer tok, HashMap enums )
+            throws IOException
+    {
+        String enumName = assertWord( tok );
+
+        assertChar( tok, '{' );
+        HashSet fieldNames = new HashSet();
+
+        while ( true )
+        {
+            fieldNames.add( assertWord( tok ) );
+            tok.nextToken();
+            if ( tok.ttype == '}' ) break;
+            assert tok.ttype == ',' : tok.ttype;    // for now, we only do very simple enums.
+        }
+
+        enums.put( enumName, fieldNames );
+    }
+}

Propchange: beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/AnnotationInterfaceParser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/DeclarationImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/DeclarationImpl.java?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/DeclarationImpl.java (original)
+++ beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/declaration/DeclarationImpl.java Fri Sep 16 13:27:57 2005
@@ -39,12 +39,6 @@
 import xjavadoc.XProgramElement;
 import xjavadoc.XTag;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StreamTokenizer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -60,9 +54,8 @@
 {
     private static final String VALIDATION_ERROR_FORWARD_TAG_NAME = "ValidationErrorForward";
     private static final HashMap MODIFIERS = new HashMap();
-    private static final HashMap MEMBER_ARRAY_ANNOTATIONS = new HashMap();
-    private static final HashMap MEMBER_ANNOTATIONS = new HashMap();
-    private static final HashSet MEMBER_OR_TOPLEVEL_ANNOTATIONS = new HashSet();
+    private static AnnotationInterfaceParser _annotationInterfaceParser =
+            new AnnotationInterfaceParser(ANNOTATION_INTERFACE_PREFIX);
     
     static
     {
@@ -76,34 +69,34 @@
         MODIFIERS.put( "synchronized", Modifier.SYNCHRONIZED );
         MODIFIERS.put( "native", Modifier.NATIVE );
         
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + FORWARD_TAG_NAME, FORWARDS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + CATCH_TAG_NAME, CATCHES_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + SIMPLE_ACTION_TAG_NAME, SIMPLE_ACTIONS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + ACTION_OUTPUT_TAG_NAME, ACTION_OUTPUTS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + CONDITIONAL_FORWARD_TAG_NAME, CONDITIONAL_FORWARDS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + MESSAGE_BUNDLE_TAG_NAME, MESSAGE_BUNDLES_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + MESSAGE_ARG_TAG_NAME, MESSAGE_ARGS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_CUSTOM_RULE_TAG_NAME, VALIDATE_CUSTOM_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_CUSTOM_VARIABLE_TAG_NAME, VARIABLES_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATION_LOCALE_RULES_TAG_NAME, LOCALE_RULES_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATABLE_PROPERTY_TAG_NAME, VALIDATABLE_PROPERTIES_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATABLE_BEAN_TAG_NAME, VALIDATABLE_BEANS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + RAISE_ACTION_TAG_NAME, RAISE_ACTIONS_ATTR );
-        MEMBER_ARRAY_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + SHARED_FLOW_REF_TAG_NAME, SHARED_FLOW_REFS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(FORWARD_TAG_NAME, FORWARDS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(CATCH_TAG_NAME, CATCHES_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(SIMPLE_ACTION_TAG_NAME, SIMPLE_ACTIONS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(ACTION_OUTPUT_TAG_NAME, ACTION_OUTPUTS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(CONDITIONAL_FORWARD_TAG_NAME, CONDITIONAL_FORWARDS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(MESSAGE_BUNDLE_TAG_NAME, MESSAGE_BUNDLES_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(MESSAGE_ARG_TAG_NAME, MESSAGE_ARGS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(VALIDATE_CUSTOM_RULE_TAG_NAME, VALIDATE_CUSTOM_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(VALIDATE_CUSTOM_VARIABLE_TAG_NAME, VARIABLES_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(VALIDATION_LOCALE_RULES_TAG_NAME, LOCALE_RULES_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(VALIDATABLE_PROPERTY_TAG_NAME, VALIDATABLE_PROPERTIES_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(VALIDATABLE_BEAN_TAG_NAME, VALIDATABLE_BEANS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(RAISE_ACTION_TAG_NAME, RAISE_ACTIONS_ATTR );
+        _annotationInterfaceParser.addMemberArrayAnnotation(SHARED_FLOW_REF_TAG_NAME, SHARED_FLOW_REFS_ATTR );
+        
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATION_ERROR_FORWARD_TAG_NAME, VALIDATION_ERROR_FORWARD_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_REQUIRED_TAG_NAME, VALIDATE_REQUIRED_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_MIN_LENGTH_TAG_NAME, VALIDATE_MIN_LENGTH_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_MAX_LENGTH_TAG_NAME, VALIDATE_MAX_LENGTH_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_MASK_TAG_NAME, VALIDATE_MASK_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_TYPE_TAG_NAME, VALIDATE_TYPE_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_DATE_TAG_NAME, VALIDATE_DATE_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_RANGE_TAG_NAME, VALIDATE_RANGE_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_CREDIT_CARD_TAG_NAME, VALIDATE_CREDIT_CARD_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_EMAIL_TAG_NAME, VALIDATE_EMAIL_ATTR );
+        _annotationInterfaceParser.addMemberAnnotation(VALIDATE_VALID_WHEN_TAG_NAME, VALIDATE_VALID_WHEN_ATTR );
         
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATION_ERROR_FORWARD_TAG_NAME, VALIDATION_ERROR_FORWARD_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_REQUIRED_TAG_NAME, VALIDATE_REQUIRED_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_MIN_LENGTH_TAG_NAME, VALIDATE_MIN_LENGTH_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_MAX_LENGTH_TAG_NAME, VALIDATE_MAX_LENGTH_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_MASK_TAG_NAME, VALIDATE_MASK_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_TYPE_TAG_NAME, VALIDATE_TYPE_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_DATE_TAG_NAME, VALIDATE_DATE_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_RANGE_TAG_NAME, VALIDATE_RANGE_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_CREDIT_CARD_TAG_NAME, VALIDATE_CREDIT_CARD_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_EMAIL_TAG_NAME, VALIDATE_EMAIL_ATTR );
-        MEMBER_ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATE_VALID_WHEN_TAG_NAME, VALIDATE_VALID_WHEN_ATTR );
-        
-        MEMBER_OR_TOPLEVEL_ANNOTATIONS.add( ANNOTATION_INTERFACE_PREFIX + VALIDATABLE_PROPERTY_TAG_NAME );
+        _annotationInterfaceParser.addMemberOrTopLevelAnnotation( VALIDATABLE_PROPERTY_TAG_NAME );
     }
     
     private HashSet _modifiers;
@@ -116,6 +109,11 @@
         _annotations = ( AnnotationInstance[] ) annotations.toArray( new AnnotationInstance[ annotations.size() ] );
     }
 
+    public static AnnotationTypeDeclaration[] getAllAnnotations()
+    {
+        return _annotationInterfaceParser.getAllAnnotations();
+    }
+    
     public String getDocComment()
     {
         return getDelegateXProgramElement().getDoc().getCommentText();
@@ -169,310 +167,6 @@
         return ( XProgramElement ) super.getDelegate();
     }
     
-    /** Map of String intermediate-name (e.g., "Jpf.Action") to AnnotationTypeDeclaration */
-    private static HashMap ANNOTATIONS = new HashMap();
-    private static AnnotationTypeDeclaration[] ALL_ANNOTATIONS;
-    
-    static
-    {
-        parseAnnotations();
-        ALL_ANNOTATIONS = ( AnnotationTypeDeclaration[] )
-                ANNOTATIONS.values().toArray( new AnnotationTypeDeclaration[ ANNOTATIONS.size() ] );
-    }
-    
-    public static AnnotationTypeDeclaration[] getAllAnnotations()
-    {
-        return ALL_ANNOTATIONS;
-    }
-    
-    private static StreamTokenizer getJavaTokenizer( Reader reader )
-    {
-        StreamTokenizer tok = new StreamTokenizer( reader );
-        tok.eolIsSignificant( false );
-        tok.lowerCaseMode( false );
-        tok.parseNumbers();
-        tok.slashSlashComments( true );
-        tok.slashStarComments( true );
-        tok.wordChars( '_', '_' );
-        tok.wordChars( '@', '@' );
-        tok.wordChars( '[', '[' );
-        tok.wordChars( ']', ']' );
-        tok.wordChars( '.', '.' );
-        tok.wordChars( '"', '"' );
-        tok.wordChars( '-', '-' );
-        return tok;
-    }
-    
-    private static void parseAnnotations()
-    {
-        try
-        {
-            String annotationsSource = ANNOTATIONS_CLASSNAME.replace( '.', '/' ) + ".java";
-            InputStream in = DeclarationImpl.class.getClassLoader().getResourceAsStream( annotationsSource );
-            assert in != null : "annotations source not found: " + annotationsSource;
-            BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
-            HashMap enums = new HashMap();  // String enumTypeName -> HashSet values
-            StreamTokenizer tok = getJavaTokenizer( reader );
-            
-            
-            String interfaceQualifier = null;
-            String packageName = null;
-            
-            while ( tok.nextToken() != StreamTokenizer.TT_EOF )
-            {
-                switch ( tok.ttype )
-                {
-                    case StreamTokenizer.TT_WORD:
-                        String str = tok.sval;
-                        
-                        if ( packageName == null && str.equals( "package" ) )
-                        {
-                            packageName = assertWord( tok );
-                        }
-                        else if ( str.equals( "public" ) )
-                        {
-                            str = assertWord( tok );
-                            
-                            if ( str.equals( "interface" ) )
-                            {
-                                interfaceQualifier = assertWord( tok ) + '.';
-                                assertChar( tok, '{' );
-                            }
-                            else if ( str.equals( "@interface" ) )
-                            {
-                                AnnotationTypeDeclarationImpl ann =
-                                        readAnnotation( tok, interfaceQualifier, packageName, enums );
-                                ANNOTATIONS.put( ann.getIntermediateName(), ann );
-                                
-                                //
-                                // Special case:
-                                //     validationErrorForward=@Jpf.Forward(...)
-                                // looks like this in our world:
-                                //     @Jpf.ValidationErrorForward(...)
-                                // Here we dynamically create a new ValidationErrorForward annotation based on Forward.
-                                //
-                                if ( ann.getSimpleName().equals( FORWARD_TAG_NAME ) )
-                                {
-                                    AnnotationTypeDeclarationImpl validationErrorForwardAnn =
-                                        new AnnotationTypeDeclarationImpl( ann, VALIDATION_ERROR_FORWARD_TAG_NAME,
-                                                                           interfaceQualifier );
-                                    ANNOTATIONS.put( ANNOTATION_INTERFACE_PREFIX + VALIDATION_ERROR_FORWARD_TAG_NAME, 
-                                                     validationErrorForwardAnn );
-                                }
-                            }
-                            else if ( str.equals( "enum" ) )
-                            {
-                                readEnum( tok, enums );
-                            }
-                        }
-                        else if ( str.charAt( 0 ) == '@' )
-                        {
-                            ignoreAnnotation( tok );
-                        }
-                        break;
-                    
-                    case StreamTokenizer.TT_NUMBER:
-                        break;
-                        
-                    default:
-                        char c = ( char ) tok.ttype;
-                        
-                        if ( c == '}' )
-                        {
-                            assert interfaceQualifier != null;
-                            interfaceQualifier = null;
-                        }
-                }
-            }
-            
-            reader.close();
-        }
-        catch ( IOException e )
-        {
-            assert false : e;
-        }
-    }
-    
-    private static String assertWord( StreamTokenizer tok )
-            throws IOException
-    {
-        tok.nextToken();
-        assert tok.ttype == StreamTokenizer.TT_WORD : tok.ttype;
-        return tok.sval;
-    }
-    
-    private static void assertChar( StreamTokenizer tok, char c )
-        throws IOException
-    {
-        tok.nextToken();
-        assert tok.ttype == c : tok.ttype;
-    }
-    
-    private static AnnotationTypeDeclarationImpl readAnnotation( StreamTokenizer tok, String interfaceQualifier,
-                                                                 String packageName, HashMap enums )
-        throws IOException
-    {
-        String annotationName = assertWord( tok );
-        ArrayList memberDecls = new ArrayList();
-        assertChar( tok, '{' );
-        
-        while ( tok.nextToken() == StreamTokenizer.TT_WORD )
-        {
-            String memberType = tok.sval;
-            HashSet enumVals = ( HashSet ) enums.get( memberType );
-            
-            tok.nextToken();
-            if ( tok.ttype == '<' ) // ignore generics
-            {
-                while ( tok.nextToken() != '>' )
-                {
-                    assert tok.ttype != StreamTokenizer.TT_EOF;
-                    assert tok.ttype != ';';
-                }
-                tok.nextToken();
-            }
-            assert tok.ttype == StreamTokenizer.TT_WORD;
-            String memberName = tok.sval;
-            assertChar( tok, '(' );
-            assertChar( tok, ')' );
-            
-            Object defaultVal = null;
-            
-            if ( tok.nextToken() == StreamTokenizer.TT_WORD )
-            {
-                assert tok.sval.equals( "default" );
-                
-                tok.nextToken();
-                if ( tok.ttype == '{' )
-                {
-                    assertChar( tok, '}' );
-                    defaultVal = new ArrayList();
-                }
-                else
-                {
-                    assert tok.ttype == StreamTokenizer.TT_WORD || tok.ttype == StreamTokenizer.TT_NUMBER : tok.ttype;
-                    
-                    if ( tok.ttype == StreamTokenizer.TT_NUMBER )
-                    {
-                        defaultVal = getNumericDefaultVal( memberType, tok.nval );
-                    }
-                    else
-                    {
-                        String defaultString = tok.sval;
-                        
-                        if ( defaultString.charAt( 0 ) == '@' )
-                        {
-                            // It's a default value that is an annotation.  We ignore these for now.
-                            ignoreAnnotation( tok );
-                        }
-                        else
-                        {
-                            if ( memberType.equals( "String" ) )
-                            {
-                                assert defaultString.charAt( 0 ) == '"' : defaultString;
-                                int len = defaultString.length();
-                                assert len > 1 && defaultString.charAt( len - 1 ) == '"' : defaultString;
-                                defaultVal = defaultString.substring( 0, len - 1 );
-                            }
-                            else if ( memberType.equals( "boolean" ) )
-                            {
-                                defaultVal = Boolean.valueOf( defaultString );
-                            }
-                            else if ( memberType.equals( "Class") )
-                            {
-                                assert defaultString.endsWith( ".class" );
-                                defaultVal = defaultString.substring( 0, defaultString.indexOf( ".class" ) );
-                            }
-                            else
-                            {
-                                defaultVal = readDefaultEnumVal( defaultString, memberType, enumVals );
-                            }
-                        }
-                    }
-                }
-                
-                tok.nextToken();
-            }
-            
-            assert tok.ttype == ';';
-            
-            if ( enumVals != null ) memberType = "String";
-            memberDecls.add( new AnnotationTypeElementDeclarationImpl( memberName, memberType, defaultVal, enumVals ) );
-        }
-        
-        assert tok.ttype == '}';
-        
-        AnnotationTypeElementDeclaration[] memberArray = ( AnnotationTypeElementDeclaration[] )
-                memberDecls.toArray( new AnnotationTypeElementDeclaration[ memberDecls.size() ] );
-        return new AnnotationTypeDeclarationImpl( annotationName, interfaceQualifier, packageName, memberArray );
-    }
-    
-    private static String readDefaultEnumVal( String defaultString, String memberType, HashSet enumVals )
-    {
-        int dot = defaultString.indexOf( '.' );
-        assert dot != -1 : "expected an enum value: " + defaultString;
-        String type = defaultString.substring( 0, dot );
-        assert type.equals( memberType ) : "expected enum " + memberType + ", got " + type;
-        assert enumVals != null : "no enum " + memberType
-                                  + " defined; currently, enum must be defined before its use";
-        String defaultVal = defaultString.substring( dot + 1 );
-        assert enumVals.contains( defaultVal ) :
-                "invalid enum field " + defaultVal + " on enum " + type; 
-        return defaultVal;
-    }
-    
-    private static Object getNumericDefaultVal( String expectedType, double defaultNumber )
-    {
-        if ( expectedType.equals( "int" ) )
-        {
-            return new Integer( ( int ) defaultNumber );
-        }
-        else if ( expectedType.equals( "long" ) )
-        {
-            return new Long( ( long ) defaultNumber );
-        }
-        else if ( expectedType.equals( "float" ) )
-        {
-            return new Float( ( float ) defaultNumber );
-        }
-        else if ( expectedType.equals( "double" ) )
-        {
-            return new Double( defaultNumber );
-        }
-        
-        assert false : "type " + expectedType + " cannot accept value " + defaultNumber;
-        return null;
-    }
-    
-    private static void ignoreAnnotation( StreamTokenizer tok )
-        throws IOException
-    {
-        while ( tok.nextToken() != ')' )
-        {
-            assert tok.ttype != StreamTokenizer.TT_EOF;
-            assert tok.ttype != ';';
-        }
-    }
-    
-    private static void readEnum( StreamTokenizer tok, HashMap enums )
-            throws IOException
-    {
-        String enumName = assertWord( tok );
-        
-        assertChar( tok, '{' );
-        HashSet fieldNames = new HashSet();
-        
-        while ( true )
-        {
-            fieldNames.add( assertWord( tok ) );
-            tok.nextToken();
-            if ( tok.ttype == '}' ) break;
-            assert tok.ttype == ',' : tok.ttype;    // for now, we only do very simple enums.
-        }
-        
-        enums.put( enumName, fieldNames );
-    }
-    
     /**
      * Get all the annotations for the given element.
      * @param element the element (class, method, etc.) to examine
@@ -490,7 +184,8 @@
         for ( Iterator i = tags.iterator(); i.hasNext(); )
         {
             XTag tag = ( XTag ) i.next();
-            AnnotationTypeDeclaration decl = ( AnnotationTypeDeclaration ) ANNOTATIONS.get( tag.getName() );
+            String tagName = tag.getName();
+            AnnotationTypeDeclaration decl = _annotationInterfaceParser.getAnnotationTypeDecl(tagName);
             
             if ( decl != null )
             {
@@ -510,7 +205,7 @@
                 
                 AnnotationInstanceImpl ann = new AnnotationInstanceImpl( tag, element, type, elementValues );
                 
-                String memberName = ( String ) MEMBER_ARRAY_ANNOTATIONS.get( tag.getName() );
+                String memberName = _annotationInterfaceParser.getParentMemberArrayName(tagName);
                 
                 if ( memberName != null )
                 {
@@ -519,7 +214,7 @@
                         annotations.add( ann );
                     }
                 }
-                else if ( ( memberName = ( String ) MEMBER_ANNOTATIONS.get( tag.getName() ) ) != null )
+                else if ( ( memberName = _annotationInterfaceParser.getParentMemberName(tagName) ) != null )
                 {
                     if ( ! addAnnotationToParent( annotations, ann, memberName, false, parentAnnotations ) )
                     {
@@ -560,7 +255,9 @@
         if ( annotations.size() == 0 )
         {
             String annName = ann.getDelegateXTag().getName();
-            if ( MEMBER_OR_TOPLEVEL_ANNOTATIONS.contains( annName ) ) return false;
+            if ( _annotationInterfaceParser.isMemberOrTopLevelAnnotation(annName) ){
+                return false;
+            }
             
             XDocletCompilerUtils.addError( ann.getPosition(), "error.no-parent-annotation",
                                            new String[]{ ann.getAnnotationType().getAnnotationTypeDeclaration().getQualifiedName() } );
@@ -602,7 +299,9 @@
             else
             {
                 String annName = ann.getDelegateXTag().getName();
-                if ( MEMBER_OR_TOPLEVEL_ANNOTATIONS.contains( annName ) ) return false;
+                if ( _annotationInterfaceParser.isMemberOrTopLevelAnnotation(annName) ) {
+                    return false;
+                }
                 
                 XDocletCompilerUtils.addError( ann.getPosition(), "error.no-parent-annotation",
                                                new String[]{ ann.getAnnotationType().getAnnotationTypeDeclaration().getQualifiedName() } );

Added: beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/env/FilerImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/env/FilerImpl.java?rev=289648&view=auto
==============================================================================
--- beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/env/FilerImpl.java (added)
+++ beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/env/FilerImpl.java Fri Sep 16 13:27:57 2005
@@ -0,0 +1,31 @@
+/*
+ * Copyright 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.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.compiler.xdoclet.typesystem.impl.env;
+
+import org.apache.beehive.netui.compiler.typesystem.env.Filer;
+
+import java.io.PrintWriter;
+import java.io.File;
+import java.io.IOException;
+
+public class FilerImpl implements Filer {
+
+    public PrintWriter createTextFile(File file) throws IOException {
+        return null;
+    }
+}

Propchange: beehive/trunk/netui/src/compiler-xdoclet/org/apache/beehive/netui/compiler/xdoclet/typesystem/impl/env/FilerImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/netui/src/compiler/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler/build.xml?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler/build.xml (original)
+++ beehive/trunk/netui/src/compiler/build.xml Fri Sep 16 13:27:57 2005
@@ -10,7 +10,6 @@
     <property name="compiler-core.classes.dir" location="${classes.dir}/compiler-core"/>
 
     <path id="module.classpath">
-        <path refid="xbean.dependency.path"/>
         <pathelement path="${compiler-core.classes.dir}"/>
     </path>
 
@@ -53,7 +52,6 @@
                 <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                 <attribute name="Implementation-Version" value="${beehive.version}"/>
                 <attribute name="Beehive-Version" value="${beehive.version}"/>
-                <attribute name="Class-Path" value="apache-xbean.jar"/>
             </manifest>
         </jar>
     </target>

Modified: beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/AnnotationReader.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/AnnotationReader.java?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/AnnotationReader.java (original)
+++ beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/AnnotationReader.java Fri Sep 16 13:27:57 2005
@@ -68,7 +68,7 @@
     private AnnotationReader( Class type, ServletContext servletContext )
     {
         String annotationsXml =
-                PageFlowConstants.PAGEFLOW_MODULE_CONFIG_GEN_DIR + "/jpf-annotations-"
+                PageFlowConstants.PAGEFLOW_MODULE_CONFIG_GEN_DIR + "/annotations-"
                 + type.getName().replace( '.', '-' ) + ".xml";
         InputStream in = servletContext.getResourceAsStream( annotationsXml );
         if ( in == null )

Modified: beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/OutputHandler.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/OutputHandler.java?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/OutputHandler.java (original)
+++ beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/OutputHandler.java Fri Sep 16 13:27:57 2005
@@ -33,7 +33,7 @@
     private static Log LOGGER = LogFactory.getLog(OutputHandler.class);
 
     /**
-     * Validate the generated jpf-struts config files, if any.
+     * Validate the generated struts config files, if any.
      *
      * @param outputDir       compiler test output directory
      * @param expectedDirName the page flow direcotry name under test

Modified: beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/PageFlowCompilerTest.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/PageFlowCompilerTest.java?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/PageFlowCompilerTest.java (original)
+++ beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/PageFlowCompilerTest.java Fri Sep 16 13:27:57 2005
@@ -88,12 +88,12 @@
      *                                       1. Setup: Copy the page flow and its expected results to a build
      *                                       directory. 2. Compile: Try to compile the page flow and its controls. Any
      *                                       warning or error messages are piped to a warningorerrors.actual file. A
-     *                                       jpf-struts-config file MAY have been created. 3. Compare: The compiler
+     *                                       struts-config file MAY have been created. 3. Compare: The compiler
      *                                       may have produced certain files. These files need to be compared to files
      *                                       that are KNOWN to be correct. The correctness is determined by the test
      *                                       author.
      *                                       <p/>
-     *                                       The supported file comparisons are: A jpf-struts-config-*.xml file and A
+     *                                       The supported file comparisons are: A struts-config-*.xml file and A
      *                                       warningsorerrors.actual file.
      *                                       <p/>
      *                                       If the test has a .expected file, then compiler MUST produce a

Modified: beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/TestPropertyMgr.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/TestPropertyMgr.java?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/TestPropertyMgr.java (original)
+++ beehive/trunk/netui/test/src/compilerTests/org/apache/beehive/netui/test/compiler/TestPropertyMgr.java Fri Sep 16 13:27:57 2005
@@ -74,7 +74,7 @@
     public static final String DIRNAME_PAGEFLOW_STRUTS_GENERATED = "_pageflow";
 
     // prefixes
-    public static final String PREFIX_CONFIG_FILE = "jpf-struts-config-";
+    public static final String PREFIX_CONFIG_FILE = "struts-config-";
 
     public static final String PREFIX_WARNINGS_OR_ERRORS = "warningsorerrors";
 

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/GA_DeprecationWarning/expectedOutput/struts-config--global.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/GA_DeprecationWarning/expectedOutput/struts-config--global.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/GA_DeprecationWarning/expectedOutput/struts-config--global.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/GA_DeprecationWarning/expectedOutput/struts-config--global.expected Fri Sep 16 13:27:57 2005
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/WEB-INF/src/global/Global.java on Tue Aug 09 16:45:33 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/WEB-INF/src/global/Global.java on Tue Aug 09 16:45:33 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="global.Global" scope="request" validate="false">
-      <forward name="page1" path="/GA_DeprecationWarning/Page1.jsp" contextRelative="true"/>
+    <action parameter="global.Global" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward contextRelative="true" name="page1" path="/GA_DeprecationWarning/Page1.jsp"/>
     </action>
-    <action path="/page2" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="global.Global" scope="request" validate="false">
-      <forward name="page2" path="/GA_DeprecationWarning/Page2.jsp" contextRelative="true"/>
+    <action parameter="global.Global" path="/page2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward contextRelative="true" name="page2" path="/GA_DeprecationWarning/Page2.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isSharedFlow" value="true"/>
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
@@ -23,5 +23,5 @@
     <set-property property="controllerClass" value="global.Global"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/Jira390/expectedOutput/struts-config-Jira390.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/Jira390/expectedOutput/struts-config-Jira390.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/Jira390/expectedOutput/struts-config-Jira390.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/Jira390/expectedOutput/struts-config-Jira390.expected Fri Sep 16 13:27:57 2005
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/Jira390/Controller.java and /Jira390/myMerge.xml on Tue Aug 09 22:05:35 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/Jira390/Controller.java and /Jira390/myMerge.xml on Tue Aug 09 22:05:35 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
-  <global-forwards>
-    <forward name="_auto" path=""/>
-  </global-forwards>
   <action-mappings>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Jira390.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" parameter="Jira390.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <set-property property="readonly" value="true"/>
       <set-property property="simpleAction" value="true"/>
       <set-property property="defaultForward" value="_defaultForward"/>
       <forward name="_defaultForward" path="/index.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="foo" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="foo">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="Jira390.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <global-forwards>
+    <forward name="_auto" path=""/>
+  </global-forwards>
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-child.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-child.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-child.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-child.expected Fri Sep 16 13:27:57 2005
@@ -1,32 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/Jira611/child/Controller.java on Tue Aug 09 22:05:37 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/Jira611/child/Controller.java on Tue Aug 09 22:05:37 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/abstractAction" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Jira611.child.Controller" scope="request" validate="false">
+    <action parameter="Jira611.child.Controller" path="/abstractAction" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="test" path="/index.jsp"/>
     </action>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Jira611.child.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" parameter="Jira611.child.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <set-property property="readonly" value="true"/>
       <set-property property="simpleAction" value="true"/>
       <set-property property="defaultForward" value="_defaultForward"/>
       <forward name="_defaultForward" path="/index.jsp"/>
     </action>
-    <action path="/forwardToAbstractAction" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Jira611.child.Controller" scope="request" validate="false">
+    <action parameter="Jira611.child.Controller" path="/forwardToAbstractAction" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="ab" path="/abstractAction.do"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="Jira611.child.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-parent.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-parent.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-parent.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/Jira611/expectedOutput/struts-config-Jira611-parent.expected Fri Sep 16 13:27:57 2005
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/Jira611/parent/Controller.java on Tue Aug 09 22:05:37 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/Jira611/parent/Controller.java on Tue Aug 09 22:05:37 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/forwardToAbstractAction" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Jira611.parent.Controller" scope="request" validate="false">
+    <action parameter="Jira611.parent.Controller" path="/forwardToAbstractAction" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="ab" path="/abstractAction.do"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="Jira611.parent.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_Abstract/expectedOutput/struts-config-Nested_Abstract.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_Abstract/expectedOutput/struts-config-Nested_Abstract.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_Abstract/expectedOutput/struts-config-Nested_Abstract.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_Abstract/expectedOutput/struts-config-Nested_Abstract.expected Fri Sep 16 13:27:57 2005
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/Nested_Abstract/Controller.java on Tue Aug 09 10:29:46 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/Nested_Abstract/Controller.java on Tue Aug 09 10:29:46 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings/>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isNestedPageFlow" value="true"/>
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
@@ -16,5 +16,5 @@
     <set-property property="controllerClass" value="Nested_Abstract.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_NewReturnTo/expectedOutput/struts-config-Nested_NewReturnTo.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_NewReturnTo/expectedOutput/struts-config-Nested_NewReturnTo.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_NewReturnTo/expectedOutput/struts-config-Nested_NewReturnTo.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/Nested_NewReturnTo/expectedOutput/struts-config-Nested_NewReturnTo.expected Fri Sep 16 13:27:57 2005
@@ -1,52 +1,52 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/Nested_NewReturnTo/Controller.java on Tue Aug 09 16:45:46 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/Nested_NewReturnTo/Controller.java on Tue Aug 09 16:45:46 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/action1" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
-      <forward name="page1" path="previousPage" className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward">
+    <action parameter="Nested_NewReturnTo.Controller" path="/action1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward" name="page1" path="previousPage">
         <set-property property="returnToPage" value="true"/>
       </forward>
     </action>
-    <action path="/action2" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
-      <forward name="page1" path="currentPage" className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward">
+    <action parameter="Nested_NewReturnTo.Controller" path="/action2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward" name="page1" path="currentPage">
         <set-property property="returnToPage" value="true"/>
       </forward>
     </action>
-    <action path="/action3" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
-      <forward name="page1" path="previousAction" className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward">
+    <action parameter="Nested_NewReturnTo.Controller" path="/action3" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward" name="page1" path="previousAction">
         <set-property property="returnToAction" value="true"/>
       </forward>
     </action>
-    <action path="/action4" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
-      <forward name="page1" path="previousAction" className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward">
+    <action parameter="Nested_NewReturnTo.Controller" path="/action4" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward" name="page1" path="previousAction">
         <set-property property="returnToAction" value="true"/>
       </forward>
     </action>
-    <action path="/action5" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
-      <forward name="page1" path="page" className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward">
+    <action parameter="Nested_NewReturnTo.Controller" path="/action5" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward" name="page1" path="page">
         <set-property property="returnToPage" value="true"/>
       </forward>
     </action>
-    <action path="/action8" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
-      <forward name="callingJpf" path="someAction" className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward">
+    <action parameter="Nested_NewReturnTo.Controller" path="/action8" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <forward className="org.apache.beehive.netui.pageflow.config.PageFlowActionForward" name="callingJpf" path="someAction">
         <set-property property="nestedReturn" value="true"/>
       </forward>
     </action>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="Nested_NewReturnTo.Controller" scope="request" validate="false">
+    <action parameter="Nested_NewReturnTo.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="page1" path="/Page1.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isNestedPageFlow" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="Nested_NewReturnTo.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionMethodOverload/expectedOutput/struts-config-PF_ActionMethodOverload.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionMethodOverload/expectedOutput/struts-config-PF_ActionMethodOverload.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionMethodOverload/expectedOutput/struts-config-PF_ActionMethodOverload.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionMethodOverload/expectedOutput/struts-config-PF_ActionMethodOverload.expected Fri Sep 16 13:27:57 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/PF_ActionMethodOverload/Controller.java on Tue Aug 09 16:45:48 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/PF_ActionMethodOverload/Controller.java on Tue Aug 09 16:45:48 MDT 2005 -->
   <form-beans>
     <form-bean name="tempForm" type="PF_ActionMethodOverload.Controller$TempForm"/>
   </form-beans>
@@ -10,25 +10,25 @@
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionMethodOverload.Controller" scope="request" validate="false">
+    <action parameter="PF_ActionMethodOverload.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="begin" path="/Begin.jsp"/>
     </action>
-    <!--Note that there is more than one action with path "/page1".  Use a form-qualified action path if this is not the one you want.-->
-    <action path="/page1" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionMethodOverload.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" parameter="PF_ActionMethodOverload.Controller" path="/page1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
+      <!-- Note that there is more than one action with path "/page1".  Use a form-qualified action path if this is not the one you want. -->
       <set-property property="overloaded" value="true"/>
       <forward name="page1" path="/Page1.jsp"/>
     </action>
-    <action path="/page1_PF_ActionMethodOverload_Controller_TempForm" name="tempForm" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionMethodOverload.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" name="tempForm" parameter="PF_ActionMethodOverload.Controller" path="/page1_PF_ActionMethodOverload_Controller_TempForm" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <set-property property="unqualifiedActionPath" value="/page1"/>
       <forward name="page1" path="/Page1.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="PF_ActionMethodOverload.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionNegatives/expectedOutput/struts-config-PF_ActionNegatives.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionNegatives/expectedOutput/struts-config-PF_ActionNegatives.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionNegatives/expectedOutput/struts-config-PF_ActionNegatives.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionNegatives/expectedOutput/struts-config-PF_ActionNegatives.expected Fri Sep 16 13:27:57 2005
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/PF_ActionNegatives/Controller.java on Tue Aug 09 16:45:51 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/PF_ActionNegatives/Controller.java on Tue Aug 09 16:45:51 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionNegatives.Controller" scope="request" validate="false">
+    <action parameter="PF_ActionNegatives.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="pg1" path="/Pg1.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="PF_ActionNegatives.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionReadOnly/expectedOutput/struts-config-PF_ActionReadOnly.expected Fri Sep 16 13:27:57 2005
@@ -1,30 +1,30 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/PF_ActionReadOnly/Controller.java on Tue Aug 09 16:45:53 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/PF_ActionReadOnly/Controller.java on Tue Aug 09 16:45:53 MDT 2005 -->
   <form-beans/>
   <global-exceptions/>
   <global-forwards>
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/action1" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionReadOnly.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" parameter="PF_ActionReadOnly.Controller" path="/action1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <set-property property="readonly" value="true"/>
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
-    <action path="/action2" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionReadOnly.Controller" scope="request" validate="false">
+    <action parameter="PF_ActionReadOnly.Controller" path="/action2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionReadOnly.Controller" scope="request" validate="false">
+    <action parameter="PF_ActionReadOnly.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="PF_ActionReadOnly.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionUseFormBean/expectedOutput/struts-config-PF_ActionUseFormBean.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionUseFormBean/expectedOutput/struts-config-PF_ActionUseFormBean.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionUseFormBean/expectedOutput/struts-config-PF_ActionUseFormBean.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionUseFormBean/expectedOutput/struts-config-PF_ActionUseFormBean.expected Fri Sep 16 13:27:57 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/PF_ActionUseFormBean/Controller.java on Tue Aug 09 16:45:55 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/PF_ActionUseFormBean/Controller.java on Tue Aug 09 16:45:55 MDT 2005 -->
   <form-beans>
     <form-bean name="formOne_nonFlowScoped" type="PF_ActionUseFormBean.Controller$FormOne"/>
     <form-bean name="formOne" type="PF_ActionUseFormBean.Controller$FormOne"/>
@@ -11,24 +11,24 @@
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/action1" name="formOne" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionUseFormBean.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" name="formOne" parameter="PF_ActionUseFormBean.Controller" path="/action1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <set-property property="formMember" value="form1"/>
       <forward name="currentPage" path="/currentPage"/>
     </action>
-    <action path="/action2" name="formOne" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionUseFormBean.Controller" scope="request" validate="false" className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping">
+    <action className="org.apache.beehive.netui.pageflow.config.PageFlowActionMapping" name="formOne" parameter="PF_ActionUseFormBean.Controller" path="/action2" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <set-property property="formMember" value="form2"/>
       <forward name="currentPage" path="/currentPage"/>
     </action>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionUseFormBean.Controller" scope="request" validate="false">
+    <action parameter="PF_ActionUseFormBean.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="gotoPg1" path="/Pg1.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="PF_ActionUseFormBean.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>

Modified: beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionWithForm/expectedOutput/struts-config-PF_ActionWithForm.expected
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionWithForm/expectedOutput/struts-config-PF_ActionWithForm.expected?rev=289648&r1=289647&r2=289648&view=diff
==============================================================================
--- beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionWithForm/expectedOutput/struts-config-PF_ActionWithForm.expected (original)
+++ beehive/trunk/netui/test/src/compilerTests/testsuite/PF_ActionWithForm/expectedOutput/struts-config-PF_ActionWithForm.expected Fri Sep 16 13:27:57 2005
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<!--Generated from /WEB-INF/.tmpbeansrc/PF_ActionWithForm/Controller.java on Tue Aug 09 16:45:58 MDT 2005-->
 <struts-config>
+  <!-- Generated from /WEB-INF/.tmpbeansrc/PF_ActionWithForm/Controller.java on Tue Aug 09 16:45:58 MDT 2005 -->
   <form-beans>
     <form-bean name="tempForm" type="PF_ActionWithForm.Controller$TempForm"/>
   </form-beans>
@@ -10,19 +10,19 @@
     <forward name="_auto" path=""/>
   </global-forwards>
   <action-mappings>
-    <action path="/begin" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionWithForm.Controller" scope="request" validate="false">
+    <action parameter="PF_ActionWithForm.Controller" path="/begin" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="begin" path="/Begin.jsp"/>
     </action>
-    <action path="/page1" name="tempForm" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" parameter="PF_ActionWithForm.Controller" scope="request" validate="false">
+    <action name="tempForm" parameter="PF_ActionWithForm.Controller" path="/page1" scope="request" type="org.apache.beehive.netui.pageflow.internal.FlowControllerAction" validate="false">
       <forward name="page1" path="/Page1.jsp"/>
     </action>
   </action-mappings>
-  <controller processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor" inputForward="true" className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig">
+  <controller className="org.apache.beehive.netui.pageflow.config.PageFlowControllerConfig" inputForward="true" processorClass="org.apache.beehive.netui.pageflow.PageFlowRequestProcessor">
     <set-property property="isReturnToPageDisabled" value="true"/>
     <set-property property="isReturnToActionDisabled" value="true"/>
     <set-property property="sharedFlows" value=""/>
     <set-property property="controllerClass" value="PF_ActionWithForm.Controller"/>
     <set-property property="isMissingDefaultMessages" value="true"/>
   </controller>
-  <message-resources key="_defaultMsgs" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages" null="true"/>
-</struts-config>
\ No newline at end of file
+  <message-resources key="_defaultMsgs" null="true" parameter="org.apache.beehive.netui.pageflow.validation.defaultMessages"/>
+</struts-config>