1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.rendering.internal.macro.groovy

File GroovyMacro.java

 

Coverage histogram

../../../../../../img/srcFileCovDistChart10.png
0% of files have more coverage

Code metrics

0
3
2
1
78
31
2
0.67
1.5
2
1

Classes

Class Line # Actions
GroovyMacro 42 3 0% 2 0
1.0100%
 

Contributing tests

This file is covered by 25 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.rendering.internal.macro.groovy;
21   
22    import javax.inject.Inject;
23    import javax.inject.Named;
24    import javax.inject.Singleton;
25    import javax.script.ScriptEngineFactory;
26   
27    import org.xwiki.component.annotation.Component;
28    import org.xwiki.component.phase.InitializationException;
29    import org.xwiki.rendering.macro.descriptor.DefaultContentDescriptor;
30    import org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro;
31    import org.xwiki.rendering.macro.script.JSR223ScriptMacroParameters;
32   
33    /**
34    * Execute script in the provided script language.
35    *
36    * @version $Id: 6e2a36e5f1b8852a908da40ea4b9445d421f2518 $
37    * @since 1.7M3
38    */
39    @Component
40    @Named("groovy")
41    @Singleton
 
42    public class GroovyMacro extends AbstractJSR223ScriptMacro<JSR223ScriptMacroParameters>
43    {
44    /**
45    * The description of the macro.
46    */
47    private static final String DESCRIPTION = "Execute a groovy script.";
48   
49    /**
50    * The description of the macro content.
51    */
52    private static final String CONTENT_DESCRIPTION = "the groovy script to execute";
53   
54    /**
55    * A specific XWiki Groovy Script Engine Factory.
56    */
57    @Inject
58    @Named("groovy")
59    private ScriptEngineFactory groovyScriptEngineFactory;
60   
61    /**
62    * Create and initialize the descriptor of the macro.
63    */
 
64  30 toggle public GroovyMacro()
65    {
66  30 super("Groovy", DESCRIPTION, new DefaultContentDescriptor(CONTENT_DESCRIPTION));
67    }
68   
 
69  30 toggle @Override
70    public void initialize() throws InitializationException
71    {
72  30 super.initialize();
73   
74    // Register Groovy Compilation Customizers by registering the XWiki Groovy Script Engine Factory which extends
75    // the default Groovy Script Engine Factory and registers Compilation Customizers.
76  30 this.scriptEngineManager.registerEngineName("groovy", this.groovyScriptEngineFactory);
77    }
78    }