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