Coverage report

| %line | %branch
--- | --- | ---

org.apache.commons.jelly.tags.core.ThreadTag$1

0%

0%

1

     /*

2

      * Copyright 2002,2004 The Apache Software Foundation.

3

      *

4

      * Licensed under the Apache License, Version 2.0 (the "License");

5

      * you may not use this file except in compliance with the License.

6

      * You may obtain a copy of the License at

7

      *

8

      *      http://www.apache.org/licenses/LICENSE-2.0

9

      *

10

      * Unless required by applicable law or agreed to in writing, software

11

      * distributed under the License is distributed on an "AS IS" BASIS,

12

      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

13

      * See the License for the specific language governing permissions and

14

      * limitations under the License.

15

      */

16

     package org.apache.commons.jelly.tags.core;

17

18

     import java.io.FileOutputStream;

19

     import java.io.IOException;

20

     import java.io.UnsupportedEncodingException;

21

22

     import org.apache.commons.jelly.JellyContext;

23

     import org.apache.commons.jelly.JellyTagException;

24

     import org.apache.commons.jelly.TagSupport;

25

     import org.apache.commons.jelly.XMLOutput;

26

     import org.apache.commons.logging.Log;

27

     import org.apache.commons.logging.LogFactory;

28

29

     /** A tag that spawns the contained script in a separate thread

30

       *

31

       * @author <a href="mailto:vinayc@apache.org">Vinay Chandran</a>

32

       */

33

     public class ThreadTag extends TagSupport  {

34

         /** Thread Name */

35

         private String name = null;

36

         /** the destination of output */

37

         private XMLOutput xmlOutput;

38

         /** Should we close the underlying output */

39

         private boolean closeOutput;

40

         /** The Log to which logging calls will be made. */

41

         private static final Log log = LogFactory.getLog(ThreadTag.class);

42

43

         public ThreadTag() {

44

         }

45

46

         // Tag interface

47

         //-------------------------------------------------------------------------

48

         public void doTag(final XMLOutput output) throws JellyTagException {

49

             if ( xmlOutput == null ) {

50

                 // lets default to system.out

51

                 try {

52

                     xmlOutput = XMLOutput.createXMLOutput( System.out );

53

                 } catch (UnsupportedEncodingException e) {

54

                     throw new JellyTagException(e);

55

                 }

56

             }

57

58

             // lets create a child context

59

             final JellyContext newContext = context.newJellyContext();

60

61

             Thread thread = new Thread(

62

                 new Runnable() {

63

0

                     public void run() {

64

                         try {

65

0

                             getBody().run(newContext, xmlOutput);

66

0

                             if (closeOutput) {

67

0

                                 xmlOutput.close();

68

0

                             }

69

                             else {

70

0

                                 xmlOutput.flush();

71

                             }

72

                         }

73

0

                         catch (Exception e) {

74

0

                             if (log.isErrorEnabled()) log.error("error running thread tag", e);

75

0

                         }

76

0

                     }

77

                 }

78

             );

79

             if ( name != null ) {

80

                 thread.setName( name );

81

             }

82

             thread.start();

83

         }

84

85

         /**

86

          * Sets the name of the thread.

87

          * @param name The name to set

88

          */

89

         public void setName(String name) {

90

             this.name = name;

91

         }

92

93

         /**

94

          * Sets the destination of output

95

          */

96

         public void setXmlOutput(XMLOutput xmlOutput) {

97

             this.closeOutput = false;

98

             this.xmlOutput = xmlOutput;

99

         }

100

101

         /**

102

          * Set the file which is generated from the output

103

          * @param name The output file name

104

          */

105

         public void setFile(String name) throws IOException {

106

             this.closeOutput = true;

107

             setXmlOutput( XMLOutput.createXMLOutput(new FileOutputStream(name)) );

108

         }

109

     }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.