On Thu, Jul 23, 2009 at 16:02, Asiri Rathnayake<[email protected]> wrote: > Hi, > > we might want to exclude ruby macro from default XE build because it's bit > heavy. (jruby.jar ~ 7MB)
Yes I don't think it should be in XE since this is really optional and there is really few people which need it. > > Thanks. > > - Asiri > > On Thu, Jul 23, 2009 at 5:49 PM, asiri > <[email protected]>wrote: > >> Author: asiri >> Date: 2009-07-23 14:19:58 +0200 (Thu, 23 Jul 2009) >> New Revision: 22042 >> >> Added: >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/pom.xml >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/macro/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/macro/ruby/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/macro/ruby/RubyMacro.java >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/resources/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/resources/META-INF/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/resources/META-INF/components.txt >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/macro/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/macro/ruby/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/macro/ruby/RenderingTests.java >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/ >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby1.test >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby2.test >> >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby3.test >> Modified: >> platform/core/trunk/xwiki-core/pom.xml >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml >> Log: >> XWIKI-2849: Create ruby macro for rendering 2.0 >> >> * Implemented. >> >> Modified: platform/core/trunk/xwiki-core/pom.xml >> =================================================================== >> --- platform/core/trunk/xwiki-core/pom.xml 2009-07-22 23:34:44 UTC >> (rev 22041) >> +++ platform/core/trunk/xwiki-core/pom.xml 2009-07-23 12:19:58 UTC >> (rev 22042) >> @@ -700,6 +700,13 @@ >> <groupId>org.xwiki.platform</groupId> >> <artifactId>xwiki-core-rendering-macro-wikibridge</artifactId> >> <version>${pom.version}</version> >> + </dependency> >> + <dependency> >> + <groupId>org.xwiki.platform</groupId> >> + <artifactId>xwiki-core-rendering-macro-ruby</artifactId> >> + <version>${pom.version}</version> >> + <!-- Only needed at runtime since it's a component implementation >> --> >> + <scope>runtime</scope> >> </dependency> >> <dependency> >> <groupId>org.xwiki.platform</groupId> >> >> Modified: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml >> =================================================================== >> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml >> 2009-07-22 23:34:44 UTC (rev 22041) >> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/pom.xml >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -127,6 +127,7 @@ >> <module>xwiki-rendering-macro-chart</module> >> <module>xwiki-rendering-macro-footnotes</module> >> <module>xwiki-rendering-macro-wikibridge</module> >> + <module>xwiki-rendering-macro-ruby</module> >> </modules> >> </project> >> >> >> >> Property changes on: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby >> ___________________________________________________________________ >> Name: svn:ignore >> + target >> .settings >> .classpath >> .project >> >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/pom.xml >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/pom.xml >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/pom.xml >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1,78 @@ >> +<?xml version="1.0" encoding="UTF-8"?> >> + >> +<!-- >> + * >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + * >> +--> >> + >> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" >> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" >> http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd >> "> >> + <modelVersion>4.0.0</modelVersion> >> + <parent> >> + <groupId>org.xwiki.platform</groupId> >> + <artifactId>xwiki-core-rendering-macros-parent</artifactId> >> + <version>2.0-SNAPSHOT</version> >> + </parent> >> + <artifactId>xwiki-core-rendering-macro-ruby</artifactId> >> + <name>XWiki Platform - Core - Rendering - Macro - Ruby</name> >> + <description>XWiki Platform - Core - Rendering - Macro - >> Ruby</description> >> + <dependencies> >> + <dependency> >> + <groupId>org.xwiki.platform</groupId> >> + <artifactId>xwiki-core-rendering-macro-script</artifactId> >> + <version>${pom.version}</version> >> + </dependency> >> + <dependency> >> + <groupId>org.jruby</groupId> >> + <artifactId>jruby</artifactId> >> + <version>1.3.0</version> >> + </dependency> >> + <dependency> >> + <groupId>com.sun.script</groupId> >> + <artifactId>jruby-engine</artifactId> >> + <version>1.3.0-xwiki</version> >> + </dependency> >> + <!-- Testing dependencies --> >> + <dependency> >> + <groupId>org.xwiki.platform</groupId> >> + <artifactId>xwiki-core-rendering-macro-script</artifactId> >> + <version>${pom.version}</version> >> + <type>test-jar</type> >> + <scope>test</scope> >> + </dependency> >> + </dependencies> >> + <build> >> + <plugins> >> + <plugin> >> + <groupId>org.apache.maven.plugins</groupId> >> + <artifactId>maven-surefire-plugin</artifactId> >> + <configuration> >> + <includes> >> + <include>**/RenderingTests.java</include> >> + </includes> >> + </configuration> >> + </plugin> >> + <plugin> >> + <!-- Apply the Checkstyle configurations defined in the top level >> pom.xml file --> >> + <groupId>org.apache.maven.plugins</groupId> >> + <artifactId>maven-checkstyle-plugin</artifactId> >> + </plugin> >> + </plugins> >> + </build> >> +</project> >> \ No newline at end of file >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/macro/ruby/RubyMacro.java >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/macro/ruby/RubyMacro.java >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/java/org/xwiki/rendering/internal/macro/ruby/RubyMacro.java >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1,66 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package org.xwiki.rendering.internal.macro.ruby; >> + >> +import javax.script.ScriptContext; >> +import javax.script.ScriptEngine; >> +import javax.script.ScriptException; >> + >> +import org.xwiki.component.annotation.Component; >> +import org.xwiki.rendering.macro.descriptor.DefaultContentDescriptor; >> +import org.xwiki.rendering.macro.script.AbstractJRSR223ScriptMacro; >> +import org.xwiki.rendering.macro.script.JSR223ScriptMacroParameters; >> + >> +/** >> + * A macro for executing ruby scripts. >> + * >> + * @version $Id:$ >> + * @since 2.0M2 >> + */ >> +...@component("ruby") >> +public class RubyMacro extends >> AbstractJRSR223ScriptMacro<JSR223ScriptMacroParameters> >> +{ >> + /** >> + * The description of the macro. >> + */ >> + private static final String DESCRIPTION = "Execute a ruby script."; >> + >> + /** >> + * The description of the macro content. >> + */ >> + private static final String CONTENT_DESCRIPTION = "The ruby script to >> execute"; >> + >> + /** >> + * Create and initialize the descriptor of the macro. >> + */ >> + public RubyMacro() >> + { >> + super(DESCRIPTION, new >> DefaultContentDescriptor(CONTENT_DESCRIPTION)); >> + } >> + >> + /** >> + * {...@inheritdoc} >> + */ >> + �...@override >> + protected Object eval(String content, ScriptEngine engine, >> ScriptContext scriptContext) throws ScriptException >> + { >> + return super.eval(content, engine, scriptContext); >> + } >> +} >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/resources/META-INF/components.txt >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/resources/META-INF/components.txt >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/main/resources/META-INF/components.txt >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1 @@ >> +org.xwiki.rendering.internal.macro.ruby.RubyMacro >> \ No newline at end of file >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/macro/ruby/RenderingTests.java >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/macro/ruby/RenderingTests.java >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/java/org/xwiki/rendering/macro/ruby/RenderingTests.java >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1,86 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package org.xwiki.rendering.macro.ruby; >> + >> +import org.jmock.Expectations; >> +import org.jmock.Mockery; >> +import org.xwiki.bridge.DocumentAccessBridge; >> +import org.xwiki.component.descriptor.DefaultComponentDescriptor; >> +import org.xwiki.component.embed.EmbeddableComponentManager; >> +import org.xwiki.component.manager.ComponentManager; >> +import org.xwiki.rendering.scaffolding.RenderingTestSuite; >> +import org.xwiki.test.ComponentManagerTestSetup; >> + >> +import junit.framework.Test; >> +import junit.framework.TestCase; >> + >> +/** >> + * Rendering tests for ruby macro. >> + * >> + * @version $Id:$ >> + * @since 2.0M2 >> + */ >> +public class RenderingTests extends TestCase >> +{ >> + /** >> + * Creates a rendering test suit for testing ruby macro. >> + * >> + * @return rendering test suit for testing ruby macro. >> + * @throws Exception if an error occurs while setting up the test >> suite. >> + */ >> + public static Test suite() throws Exception >> + { >> + RenderingTestSuite suite = new RenderingTestSuite("Test Ruby >> Macro"); >> + >> + suite.addTestsFromResource("macroruby1", true); >> + suite.addTestsFromResource("macroruby2", true); >> + suite.addTestsFromResource("macroruby3", true); >> + >> + ComponentManagerTestSetup testSetup = new >> ComponentManagerTestSetup(suite); >> + setUpMocks(testSetup.getComponentManager()); >> + >> + return testSetup; >> + } >> + >> + /** >> + * Sets up mock component descriptors. >> + * >> + * @param componentManager the {...@link ComponentManager} component. >> + */ >> + public static void setUpMocks(EmbeddableComponentManager >> componentManager) >> + { >> + Mockery context = new Mockery(); >> + >> + // Document Access Bridge Mock setup >> + final DocumentAccessBridge mockDocumentAccessBridge = >> context.mock(DocumentAccessBridge.class); >> + context.checking(new Expectations() >> + { >> + { >> + allowing(mockDocumentAccessBridge).hasProgrammingRights(); >> + will(returnValue(true)); >> + } >> + }); >> + >> + DefaultComponentDescriptor<DocumentAccessBridge> descriptorDAB = >> + new DefaultComponentDescriptor<DocumentAccessBridge>(); >> + descriptorDAB.setRole(DocumentAccessBridge.class); >> + componentManager.registerComponent(descriptorDAB, >> mockDocumentAccessBridge); >> + } >> +} >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby1.test >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby1.test >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby1.test >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1,14 @@ >> +.#----------------------------------------------------- >> +.input|xwiki/2.0 >> +.#----------------------------------------------------- >> +{{ruby}} >> +puts "Hello World!!!" >> +{{/ruby}} >> + >> +== Hello {{ruby}}puts "World!!!"{{/ruby}}== >> +.#----------------------------------------------------- >> +.expect|xhtml/1.0 >> +.#----------------------------------------------------- >> +<!--startmacro:ruby|-||-| >> +puts "Hello World!!!" >> +--><p>Hello World!!!</p><!--stopmacro--><h2 id="HHello"><span>Hello >> <!--startmacro:ruby|-||-|puts >> "World!!!"-->World!!!<!--stopmacro--></span></h2> >> \ No newline at end of file >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby2.test >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby2.test >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby2.test >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1,16 @@ >> +.#----------------------------------------------------- >> +.input|xwiki/2.0 >> +.# Verify ruby macro does not fail with null content >> +.#----------------------------------------------------- >> +{{ruby/}}{{ruby}}{{/ruby}} >> +.#----------------------------------------------------- >> +.expect|event/1.0 >> +.#----------------------------------------------------- >> +beginDocument >> +beginParagraph >> +beginMacroMarkerInline [ruby] [] >> +endMacroMarkerInline [ruby] [] >> +beginMacroMarkerInline [ruby] [] [] >> +endMacroMarkerInline [ruby] [] [] >> +endParagraph >> +endDocument >> \ No newline at end of file >> >> Added: >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby3.test >> =================================================================== >> --- >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby3.test >> (rev 0) >> +++ >> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-rendering-macro-ruby/src/test/resources/macroruby3.test >> 2009-07-23 12:19:58 UTC (rev 22042) >> @@ -0,0 +1,28 @@ >> +.#----------------------------------------------------- >> +.input|xwiki/2.0 >> +.#----------------------------------------------------- >> +{{ruby}} >> +require 'java' >> +include_class 'java.util.TreeSet' >> +set = TreeSet.new >> +set.add "foo" >> +set.add "Bar" >> +set.add "baz" >> +set.each do |v| >> + puts "value: #{v}" >> +end >> +{{/ruby}} >> +.#----------------------------------------------------- >> +.expect|xhtml/1.0 >> +.#----------------------------------------------------- >> +<!--startmacro:ruby|-||-| >> +require 'java' >> +include_class 'java.util.TreeSet' >> +set = TreeSet.new >> +set.add "foo" >> +set.add "Bar" >> +set.add "baz" >> +set.each do |v| >> + puts "value: #{v}" >> +end >> +--><p>value: Bar<br/>value: baz<br/>value: foo</p><!--stopmacro--> >> \ No newline at end of file >> >> _______________________________________________ >> notifications mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/notifications >> > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

