Exemplo n.º 1
0
        /// <summary>
        /// merges a template and puts the rendered stream into the writer
        /// </summary>
        /// <param name="templateName">name of template to be used in merge
        /// </param>
        /// <param name="encoding">encoding used in template
        /// </param>
        /// <param name="context"> filled context to be used in merge
        /// </param>
        /// <param name="writer"> writer to write template into
        /// </param>
        /// <returns>true if successful, false otherwise.  Errors
        /// logged to velocity log
        /// @since Velocity v1.1
        /// </returns>
        public static bool MergeTemplate(String templateName, String encoding, IContext context, TextWriter writer)
        {
            Template template = RuntimeSingleton.getTemplate(templateName, encoding)
            ;

            if (template == null)
            {
                RuntimeSingleton.error("Velocity.parseTemplate() failed loading template '" + templateName + "'");
                return(false);
            }
            else
            {
                template.Merge(context, writer);
                return(true);
            }
        }
Exemplo n.º 2
0
        /// <summary> Runs the test.
        /// </summary>
        public virtual void  runTest()
        {
            try {
                assureResultsDirectoryExists(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR);

                /*
                 * Get the template and the output. Do them backwards.
                 * vm_test2 uses a local VM and vm_test1 doesn't
                 */

                Template template2 = RuntimeSingleton.getTemplate(getFileName(null, "vm_test2", org.apache.velocity.test.TemplateTestBase_Fields.TMPL_FILE_EXT));

                Template template1 = RuntimeSingleton.getTemplate(getFileName(null, "vm_test1", org.apache.velocity.test.TemplateTestBase_Fields.TMPL_FILE_EXT));

                System.IO.FileStream fos1 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "vm_test1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

                System.IO.FileStream fos2 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "vm_test2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer1 = new BufferedWriter(new System.IO.StreamWriter(fos1));
                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer2 = new BufferedWriter(new System.IO.StreamWriter(fos2));

                /*
                 *  put the Vector into the context, and merge both
                 */

                VelocityContext context = new VelocityContext();

                template1.merge(context, writer1);
                writer1.Flush();
                writer1.Close();

                template2.merge(context, writer2);
                writer2.Flush();
                writer2.Close();

                if (!isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "vm_test1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT) || !isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "vm_test2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT))
                {
                    fail("Output incorrect.");
                }
            } catch (System.Exception e) {
                fail(e.Message);
            }
        }
Exemplo n.º 3
0
        /// <summary> Runs the test.
        /// </summary>
        public virtual void  runTest()
        {
            try {
                /*
                 *  lets ensure the results directory exists
                 */
                assureResultsDirectoryExists(RESULTS_DIR);

                Template template1 = RuntimeSingleton.getTemplate(getFileName(null, "template/test1", TMPL_FILE_EXT));

                Template template2 = RuntimeSingleton.getTemplate(getFileName(null, "template/test2", TMPL_FILE_EXT));

                System.IO.FileStream fos1 = new System.IO.FileStream(getFileName(RESULTS_DIR, "test1", RESULT_FILE_EXT), System.IO.FileMode.Create);

                System.IO.FileStream fos2 = new System.IO.FileStream(getFileName(RESULTS_DIR, "test2", RESULT_FILE_EXT), System.IO.FileMode.Create);

                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer1 = new BufferedWriter(new System.IO.StreamWriter(fos1));
                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer2 = new BufferedWriter(new System.IO.StreamWriter(fos2));

                /*
                 *  put the Vector into the context, and merge both
                 */

                VelocityContext context = new VelocityContext();

                template1.merge(context, writer1);
                writer1.Flush();
                writer1.Close();

                template2.merge(context, writer2);
                writer2.Flush();
                writer2.Close();

                if (!isMatch(RESULTS_DIR, COMPARE_DIR, "test1", RESULT_FILE_EXT, CMP_FILE_EXT) || !isMatch(RESULTS_DIR, COMPARE_DIR, "test2", RESULT_FILE_EXT, CMP_FILE_EXT))
                {
                    fail("Output is incorrect!");
                }
            } catch (System.Exception e) {
                fail(e.Message);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Runs the test.
        /// </summary>
        private Boolean RunTest(String baseFileName)
        {
            // run setup before each test so that the context is clean
            SetUp();

            try {
                Template template = RuntimeSingleton.getTemplate(getFileName(null, baseFileName, NVelocity.Test.TemplateTestBase_Fields.TMPL_FILE_EXT))
                ;

                assureResultsDirectoryExists(NVelocity.Test.TemplateTestBase_Fields.RESULT_DIR);

                /* get the file to write to */
                FileStream fos = new FileStream(getFileName(NVelocity.Test.TemplateTestBase_Fields.RESULT_DIR, baseFileName, NVelocity.Test.TemplateTestBase_Fields.RESULT_FILE_EXT), FileMode.Create);

                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                StreamWriter writer = new StreamWriter(fos);

                /* process the template */
                template.Merge(context, writer);

                /* close the file */
                writer.Flush();
                writer.Close();

                if (!isMatch(TemplateTestBase_Fields.RESULT_DIR, TemplateTestBase_Fields.COMPARE_DIR, baseFileName,
                             TemplateTestBase_Fields.RESULT_FILE_EXT, TemplateTestBase_Fields.CMP_FILE_EXT))
                {
                    //Fail("Processed template did not match expected output");
                    return(false);
                }
            } catch (System.Exception e) {
                System.Console.Out.WriteLine("EXCEPTION : " + e);

                Assertion.Fail(e.Message);
            }
            return(true);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Returns a <code>Template</code> from the Velocity
 /// resource management system.
 /// </summary>
 /// <param name="name">The file name of the desired template.
 /// </param>
 /// <param name="encoding">The character encoding to use for the template.
 /// </param>
 /// <returns>    The template.
 /// @throws ResourceNotFoundException if template not found
 /// from any available source.
 /// @throws ParseErrorException if template cannot be parsed due
 /// to syntax (or other) error.
 /// @throws Exception if an error occurs in template initialization
 /// @since Velocity v1.1
 /// </returns>
 public static Template GetTemplate(String name, String encoding)
 {
     return(RuntimeSingleton.getTemplate(name, encoding));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Returns a <code>Template</code> from the Velocity
 /// resource management system.
 /// </summary>
 /// <param name="name">The file name of the desired template.
 /// </param>
 /// <returns>    The template.
 /// @throws ResourceNotFoundException if template not found
 /// from any available source.
 /// @throws ParseErrorException if template cannot be parsed due
 /// to syntax (or other) error.
 /// @throws Exception if an error occurs in template initialization
 /// </returns>
 public static Template GetTemplate(String name)
 {
     return(RuntimeSingleton.getTemplate(name));
 }
Exemplo n.º 7
0
 /// <summary>
 /// Retrieves the requested template.
 /// </summary>
 /// <param name="name">The file name of the template to retrieve relative to the template root.</param>
 /// <returns>teh requested template</returns>
 public virtual Template GetTemplate(String name)
 {
     return(RuntimeSingleton.getTemplate(name));
 }
Exemplo n.º 8
0
        /// <summary> Runs the test.
        /// </summary>
        public virtual void  runTest()
        {
            /*
             *  make a Vector and String array because
             *  they are treated differently in Foreach()
             */
            System.Collections.ArrayList v = new System.Collections.ArrayList();

            v.Add(new System.String("vector hello 1".ToCharArray()));
            v.Add(new System.String("vector hello 2".ToCharArray()));
            v.Add(new System.String("vector hello 3".ToCharArray()));

            System.String[] strArray = new System.String[3];

            strArray[0] = "array hello 1";
            strArray[1] = "array hello 2";
            strArray[2] = "array hello 3";

            VelocityContext context = new VelocityContext();

            try {
                assureResultsDirectoryExists(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR);

                /*
                 *  get the template and the output
                 */

                Template template = RuntimeSingleton.getTemplate(getFileName(null, "context_safety", org.apache.velocity.test.TemplateTestBase_Fields.TMPL_FILE_EXT))
                ;

                System.IO.FileStream fos1 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "context_safety1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

                System.IO.FileStream fos2 = new System.IO.FileStream(getFileName(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, "context_safety2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT), System.IO.FileMode.Create);

                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer1 = new BufferedWriter(new System.IO.StreamWriter(fos1));
                //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                System.IO.StreamWriter writer2 = new BufferedWriter(new System.IO.StreamWriter(fos2));

                /*
                 *  put the Vector into the context, and merge
                 */

                context.put("vector", v);
                template.merge(context, writer1);
                writer1.Flush();
                writer1.Close();

                /*
                 *  now put the string array into the context, and merge
                 */

                context.put("vector", strArray);
                template.merge(context, writer2);
                writer2.Flush();
                writer2.Close();

                if (!isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "context_safety1", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT) || !isMatch(org.apache.velocity.test.TemplateTestBase_Fields.RESULT_DIR, org.apache.velocity.test.TemplateTestBase_Fields.COMPARE_DIR, "context_safety2", org.apache.velocity.test.TemplateTestBase_Fields.RESULT_FILE_EXT, org.apache.velocity.test.TemplateTestBase_Fields.CMP_FILE_EXT))
                {
                    fail("Output incorrect.");
                }
            } catch (System.Exception e) {
                fail(e.Message);
            }
        }
Exemplo n.º 9
0
        public Test(System.String templateFile, System.String encoding)
        {
            System.IO.StreamWriter writer   = null;
            TestProvider           provider = new TestProvider();
            ArrayList al = provider.Customers;

            System.Collections.Hashtable h = new System.Collections.Hashtable();

            /*
             *  put this in to test introspection $h.Bar or $h.get("Bar") etc
             */

            SupportClass.PutElement(h, "Bar", "this is from a hashtable!");
            SupportClass.PutElement(h, "Foo", "this is from a hashtable too!");

            /*
             *  adding simple vector with strings for testing late introspection stuff
             */

            System.Collections.ArrayList v = new System.Collections.ArrayList();

            System.String str = "mystr";

            v.Add(new System.String("hello".ToCharArray()));
            v.Add(new System.String("hello2".ToCharArray()));
            v.Add(str);

            try {
                /*
                 *  this is another way to do properties when initializing Runtime.
                 *  make a Properties
                 */

                //UPGRADE_TODO: Format of property file may need to be changed. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1089"'
                System.Configuration.AppSettingsReader p = new System.Configuration.AppSettingsReader();

                /*
                 *  now, if you want to, load it from a file (or whatever)
                 */

                try {
                    System.IO.FileStream fis = new System.IO.FileStream(new System.IO.FileInfo("velocity.properties").FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read);

                    if (fis != null)
                    {
                        //UPGRADE_ISSUE: Method 'java.util.Properties.load' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javautilPropertiesload_javaioInputStream"'
                        p.load(fis);
                    }
                } catch (System.Exception ex) {
                    /* no worries. no file... */
                }

                /*
                 *  iterate out the properties
                 */

                System.Collections.Specialized.NameValueCollection temp_namedvaluecollection;
                temp_namedvaluecollection = System.Configuration.ConfigurationSettings.AppSettings;
                //UPGRADE_TODO: method 'java.util.Enumeration.hasMoreElements' was converted to ' ' which has a different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1073_javautilEnumerationhasMoreElements"'
                for (System.Collections.IEnumerator e = temp_namedvaluecollection.GetEnumerator(); e.MoveNext();)
                {
                    //UPGRADE_TODO: method 'java.util.Enumeration.nextElement' was converted to ' ' which has a different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1073_javautilEnumerationnextElement"'
                    System.String el = (System.String)e.Current;

                    //UPGRADE_WARNING: method 'java.util.Properties.getProperty' was converted to ' ' which may throw an exception. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1101"'
                    Velocity.setProperty(el, (System.String)p.GetValue(el, System.Type.GetType("System.String")));
                }

                /*
                 *  add some individual properties if you wish
                 */


                Velocity.setProperty(Velocity.RUNTIME_LOG_ERROR_STACKTRACE, "true");
                Velocity.setProperty(Velocity.RUNTIME_LOG_WARN_STACKTRACE, "true");
                Velocity.setProperty(Velocity.RUNTIME_LOG_INFO_STACKTRACE, "true");

                /*
                 *  use an alternative logger.  Set it up here and pass it in.
                 */

                //            SimpleLogSystem sls = new SimpleLogSystem("velocity_simple.log");

                // Velocity.setProperty(Velocity.RUNTIME_LOG_LOGSYSTEM, sls );

                /*
                 *  and now call init
                 */

                Velocity.init();

                /*
                 *  now, do what we want to do.  First, get the Template
                 */

                if (templateFile == null)
                {
                    templateFile = "examples/example.vm";
                }


                Template template = null;

                try
                {
                    template = RuntimeSingleton.getTemplate(templateFile, encoding)
                    ;
                }
                catch (ResourceNotFoundException rnfe) {
                    System.Console.Out.WriteLine("Test : RNFE : Cannot find template " + templateFile);
                } catch (ParseErrorException pee) {
                    System.Console.Out.WriteLine("Test : Syntax error in template " + templateFile + ":" + pee);
                }

                /*
                 * now, make a Context object and populate it.
                 */

                VelocityContext context = new VelocityContext();

                context.put("provider", provider);
                context.put("name", "jason");
                context.put("providers", provider.Customers2);
                context.put("list", al);
                context.put("hashtable", h);
                context.put("search", provider.Search);
                context.put("relatedSearches", provider.RelSearches);
                context.put("searchResults", provider.RelSearches);
                context.put("menu", provider.Menu);
                context.put("stringarray", provider.Array);
                context.put("vector", v);
                context.put("mystring", new System.String("".ToCharArray()));
                context.put("hashmap", new HashMap());
                context.put("runtime", new FieldMethodizer("org.apache.velocity.runtime.RuntimeSingleton"));
                context.put("fmprov", new FieldMethodizer(provider));
                context.put("Floog", "floogie woogie");
                context.put("geirstring", str);
                context.put("mylong", 5);

                /*
                 *  we want to make sure we test all types of iterative objects
                 *  in #foreach()
                 */

                int[] intarr = new int[] { 10, 20, 30, 40, 50 };

                System.Object[] oarr = new System.Object[] { "a", "b", "c", "d" };

                context.put("collection", v);
                context.put("iterator", v.iterator());
                context.put("map", h);
                context.put("obarr", oarr);
                context.put("intarr", intarr);

                System.String          stest = " My name is $name -> $Floog";
                System.IO.StringWriter w     = new System.IO.StringWriter();
                //            Velocity.evaluate( context, w, "evaltest",stest );
                //            System.out.println("Eval = " + w );

                w = new System.IO.StringWriter();
                //Velocity.mergeTemplate( "mergethis.vm",  context, w );
                //System.out.println("Merge = " + w );

                w = new System.IO.StringWriter();
                //Velocity.invokeVelocimacro( "floog", "test", new String[2],  context,  w );
                //System.out.println("Invoke = " + w );


                /*
                 *  event cartridge stuff
                 */

                EventCartridge ec = new EventCartridge();
                ec.addEventHandler(this);
                ec.attachToContext(context);

                /*
                 *  make a writer, and merge the template 'against' the context
                 */

                VelocityContext vc = new VelocityContext(context);

                if (template != null)
                {
                    //UPGRADE_ISSUE: Constructor 'java.io.BufferedWriter.BufferedWriter' was not converted. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1000_javaioBufferedWriterBufferedWriter_javaioWriter"'
                    writer = new BufferedWriter(new System.IO.StreamWriter(System.Console.Out));
                    template.merge(vc, writer);
                    writer.Flush();
                    writer.Close();
                }
            } catch (MethodInvocationException mie) {
                System.Console.Out.WriteLine("MIE : " + mie);
            } catch (System.Exception e) {
                RuntimeSingleton.error("Test- exception : " + e);
                SupportClass.WriteStackTrace(e, Console.Error);
            }
        }