• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17


  • Subject: Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17
  • From: Henrique Prange <email@hidden>
  • Date: Wed, 06 Jul 2011 19:14:29 -0300

Hi Lars,

Sorry for the long time to reply.

On 04/07/2011, at 17:34, Lars Sonchocky-Helldorf wrote:

> Hi Henrique,
>
> I did run into this again today, although in another project at another company. This time it's a little worse since 2.0.17 causes trouble too. The fix using version 2.1 is still valid though.
>
> Historically, the project was using version 2.0.17 of the plug in. With this version in place I run into trouble with nonexistent wobuild.properties:
>
>
> BUILD FAILED
> org.objectstyle.woenvironment.env.WOBuildPropertiesNotFoundException: Could not find wobuild.properties. Run the buildfile: woproperties.xml first.
> 	at org.objectstyle.woproject.ant.WOApplication.getWOEnvironment(WOApplication.java:578)
>
>
> Then again Chuck said here: http://www.mail-archive.com/email@hidden/msg33664.html that wobuild.properties are no longer in use.
>
>

The maven-wolifecycle-plugin uses an outdated version of WOProject Ant tasks. That is not a huge problem since the benefits of the most-recent version of those tasks are not apparent to Maven users.

>
> So I thought this might be an artifact of the ancient version of this plugin and tried updating to the latest version (2.2.1) of this plugin. Now I run into another problem:
>

The 2.2.1 version is broken. You should stick to the 2.1 instead.

>
> [INFO] [install:install {execution: default-install}]
> [INFO] Installing /Volumes/Daten/lars.sonchocky-helldorf/Documents/workspace/JvMAll/Applications/JvMScheduler/target/JvMScheduler-1.0.1-SNAPSHOT.woapplication to /Users/lars.sonchocky-helldorf/.m2/repository/jvm/intranet/JvMScheduler/1.0.1-SNAPSHOT/JvMScheduler-1.0.1-SNAPSHOT.woapplication
> [INFO] ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO] ------------------------------------------------------------------------
> [INFO] Error installing artifact: File /Volumes/Daten/lars.sonchocky-helldorf/Documents/workspace/JvMAll/Applications/JvMScheduler/target/JvMScheduler-1.0.1-SNAPSHOT.woapplication does not exist
>
>
> in fact there is only a JvMScheduler-1.0.1-SNAPSHOT.woa not a JvMScheduler-1.0.1-SNAPSHOT.woapplication in this directory:
>
>
> lars:JvMAll lars.sonchocky-helldorf$ cd /Volumes/Daten/lars.sonchocky-helldorf/Documents/workspace/JvMAll/Applications/JvMScheduler/target
> lars:target lars.sonchocky-helldorf$ ls -al
> total 57584
> drwxrwxr-x  10 lars.sonchocky-helldorf  staff       340  4 Jul 13:48 .
> drwxrwxr-x  22 lars.sonchocky-helldorf  staff       748  4 Jul 13:48 ..
> drwxrwxr-x   5 lars.sonchocky-helldorf  staff       170  4 Jul 13:48 JvMScheduler-1.0.1-SNAPSHOT.woa
> -rw-rw-r--   1 lars.sonchocky-helldorf  staff  29152747  4 Jul 13:48 JvMScheduler-1.0.1-SNAPSHOT.woapplication.tar.gz
> -rw-rw-r--   1 lars.sonchocky-helldorf  staff    312714  4 Jul 13:48 JvMScheduler-1.0.1-SNAPSHOT.wowebserverresources.tar.gz
> drwxrwxr-x   7 lars.sonchocky-helldorf  staff       238  4 Jul 13:48 classes
> -rw-rw-r--   1 lars.sonchocky-helldorf  staff       121  4 Jul 13:48 classpath.properties
> -rw-rw-r--   1 lars.sonchocky-helldorf  staff      1751  4 Jul 13:48 classpath.txt
> drwxrwxr-x  18 lars.sonchocky-helldorf  staff       612  4 Jul 13:48 lib
> -rw-rw-r--   1 lars.sonchocky-helldorf  staff       124  4 Jul 13:48 wobuild.properties
> lars:target lars.sonchocky-helldorf$
>
>
>
> Attached are the maven outputs for the project in question for both versions of the plug in:
>
> <maven-wolifecycle-plugin_2.0.17.txt>
> <maven-wolifecycle-plugin_2.2.1.txt>
>
>
>
> Any chance there will be an fixed version of the maven-wolifecycle-plugin plugin sometime now?
>

I'm reorganizing the maven plug-ins on GitHub. I'll provide more details soon.

Cheers,

Henrique

>
>
> b.t.w. my Maven is (installed using MacPorts):
>
> lars:JvMAll lars.sonchocky-helldorf$ mvn --version
> Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
> Java version: 1.6.0_24
> Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
> Default locale: de_DE, platform encoding: MacRoman
> OS name: "mac os x" version: "10.6.8" arch: "x86_64" Family: "mac"
> lars:JvMAll lars.sonchocky-helldorf$
>
>
> I am using still Maven 2.2.1 since 3.0.2 (SnowLeo default) and 3.0.3 (MacPorts) cause a compilation failure where imported classes are not seen somehow.
>
>
> regards,
>
> 	Lars
>
>
> Am 22.01.2011 um 19:32 schrieb Henrique Prange:
>
>> Hi Lars,
>>
>> The maven-wolifecycle-plugin 2.2.1 is broken. Use the maven-wolifecycle-plugin 2.1 instead.
>>
>> I still haven't found time to fix the problem. The maven-wolifecycle-plugin 2.2.1 was an attempt to fix some incompatibilities with Maven 3, but I have introduced a new critical bug and it is not useable yet.
>>
>> Cheers,
>>
>> Henrique
>>
>> On 22/01/2011, at 15:24, Lars Sonchocky-Helldorf wrote:
>>
>>> The maven-wolifecycle-plugin version 2.2.1 seems to be broken in a subtle way. Comparing the output of 'mvn clean install' for both version 2.2.1 and version 2.0.17
>>>
>>> What can I do about this (other than to stay with 2.0.17)?
>>>
>>>
>>> thanks,
>>>
>>> 	Lars
>>>
>>> version 2.2.1:
>>>
>>> local-admins-macbook-pro:IntercomIntranet lars$ mvn clean install
>>> [INFO] Scanning for projects...
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] Building intercomIntranet
>>> [INFO]    task-segment: [clean, install]
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] [clean:clean {execution: default-clean}]
>>> [INFO] Deleting directory /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from assense.repository.snapshot
>>> [WARNING] repository metadata for: 'snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT' could not be retrieved from repository: assense.repository.snapshot due to an error: Error transferring file: Connection refused
>>> [INFO] Repository 'assense.repository.snapshot' will be blacklisted
>>> [INFO] [wolifecycle:define-woapplication-resources {execution: default-define-woapplication-resources}]
>>> [INFO] Creating output folders
>>> [INFO] Defining WO resources
>>> [INFO] Defining WO properties
>>> [INFO] Defining WO classpath
>>> [INFO] Coping WebServerResources
>>> [INFO] [resources:resources {execution: default-resources}]
>>> [WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
>>> [INFO] skip non existing resourceDirectory /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/src/main/resources
>>> [INFO] Copying 204 resources to ../IntercomIntranet-1.2.53-SNAPSHOT.woa/Contents/Resources
>>> [INFO] Copying 67 resources to ../IntercomIntranet-1.2.53-SNAPSHOT.woa/Contents/WebServerResources
>>> [INFO] [compiler:compile {execution: default-compile}]
>>> [INFO] Compiling 158 source files to /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/classes
>>> [INFO] [wolifecycle:woapplication {execution: default-woapplication}]
>>>
>>> initTaskDefs:
>>>
>>> test-pom:
>>>   [echo] Artifact ID: IntercomIntranet
>>>   [echo] Artifact Version: 1.2.53-SNAPSHOT
>>>   [echo] Artifact Final Name: IntercomIntranet-1.2.53-SNAPSHOT
>>>
>>> woapplicationproperties:
>>>
>>> build-woapplication:
>>> [woapplication] Installing IntercomIntranet-1.2.53-SNAPSHOT in target
>>> [copy bootstrap] Copying 1 file to /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woa
>>>    [tar] Building tar: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar
>>>   [gzip] Building: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar.gz
>>> [delete] Deleting: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar
>>>    [tar] Building tar: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar
>>>   [gzip] Building: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar.gz
>>> [delete] Deleting: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar
>>> [INFO] [resources:testResources {execution: default-testResources}]
>>> [WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
>>> [INFO] skip non existing resourceDirectory /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/src/test/resources
>>> [INFO] [compiler:testCompile {execution: default-testCompile}]
>>> [INFO] No sources to compile
>>> [INFO] [surefire:test {execution: default-test}]
>>> [INFO] No tests to run.
>>> [INFO] [wolifecycle:package-woapplication {execution: default-package-woapplication}]
>>> [INFO] Packaging WebObjects project
>>> [INFO] Attaching artifact: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar.gz
>>> [INFO] Attaching artifact: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar.gz
>>> [INFO] [install:install {execution: default-install}]
>>> [INFO] Installing /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication to /Users/lars/.m2/repository/intercom/IntercomIntranet/1.2.53-SNAPSHOT/IntercomIntranet-1.2.53-SNAPSHOT.woapplication
>>> [INFO] ------------------------------------------------------------------------
>>> [ERROR] BUILD ERROR
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] Error installing artifact: File /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication does not exist
>>>
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] For more information, run Maven with the -e switch
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] Total time: 21 seconds
>>> [INFO] Finished at: Tue Sep 07 21:43:42 CEST 2010
>>> [INFO] Final Memory: 18M/47M
>>> [INFO] ------------------------------------------------------------------------
>>>
>>>
>>> version 2.0.17:
>>>
>>> local-admins-macbook-pro:IntercomIntranet lars$ mvn clean install
>>> [INFO] Scanning for projects...
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] Building intercomIntranet
>>> [INFO]    task-segment: [clean, install]
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] [clean:clean {execution: default-clean}]
>>> [INFO] Deleting directory /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from pvtool.repository
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from assense.repository.snapshot
>>> [WARNING] repository metadata for: 'snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT' could not be retrieved from repository: assense.repository.snapshot due to an error: Error transferring file: Connection refused
>>> [INFO] Repository 'assense.repository.snapshot' will be blacklisted
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from codehaus.repository
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots.mirror
>>> [INFO] snapshot assense.shared:LuceneWOIntegration:1.5.7-SNAPSHOT: checking for updates from webobjects.mdimension.com/snapshots
>>> [INFO] snapshot assense.shared:Frameworks:1.5.7-SNAPSHOT: checking for updates from pvtool.repository
>>> [INFO] snapshot assense.shared:Frameworks:1.5.7-SNAPSHOT: checking for updates from codehaus.repository
>>> [INFO] snapshot assense.shared:Frameworks:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots
>>> [INFO] snapshot assense.shared:Frameworks:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots.mirror
>>> [INFO] snapshot assense.shared:Frameworks:1.5.7-SNAPSHOT: checking for updates from webobjects.mdimension.com/snapshots
>>> [INFO] snapshot assense.shared:assense-all-parent:1.5.7-SNAPSHOT: checking for updates from pvtool.repository
>>> [INFO] snapshot assense.shared:assense-all-parent:1.5.7-SNAPSHOT: checking for updates from codehaus.repository
>>> [INFO] snapshot assense.shared:assense-all-parent:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots
>>> [INFO] snapshot assense.shared:assense-all-parent:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots.mirror
>>> [INFO] snapshot assense.shared:assense-all-parent:1.5.7-SNAPSHOT: checking for updates from webobjects.mdimension.com/snapshots
>>> [INFO] snapshot assense.shared:PostgreSQLPlugIn:1.5.7-SNAPSHOT: checking for updates from pvtool.repository
>>> [INFO] snapshot assense.shared:PostgreSQLPlugIn:1.5.7-SNAPSHOT: checking for updates from codehaus.repository
>>> [INFO] snapshot assense.shared:PostgreSQLPlugIn:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots
>>> [INFO] snapshot assense.shared:PostgreSQLPlugIn:1.5.7-SNAPSHOT: checking for updates from wocommunity.snapshots.mirror
>>> [INFO] snapshot assense.shared:PostgreSQLPlugIn:1.5.7-SNAPSHOT: checking for updates from webobjects.mdimension.com/snapshots
>>> [INFO] [wolifecycle:define-woapplication-resources {execution: default-define-woapplication-resources}]
>>> [INFO] Creating output folders
>>> [INFO] Defining WO resources
>>> [INFO] Defining WO properties
>>> [INFO] Defining WO classpath
>>> [INFO] Coping WebServerResources
>>> [INFO] [resources:resources {execution: default-resources}]
>>> [WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
>>> [INFO] skip non existing resourceDirectory /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/src/main/resources
>>> [INFO] Copying 204 resources to ../IntercomIntranet-1.2.53-SNAPSHOT.woa/Contents/Resources
>>> [INFO] Copying 67 resources to ../IntercomIntranet-1.2.53-SNAPSHOT.woa/Contents/WebServerResources
>>> [INFO] [compiler:compile {execution: default-compile}]
>>> [INFO] Compiling 176 source files to /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/classes
>>> [INFO] [wolifecycle:woapplication {execution: default-woapplication}]
>>>
>>> initTaskDefs:
>>>
>>> test-pom:
>>>   [echo] Artifact ID: IntercomIntranet
>>>   [echo] Artifact Version: 1.2.53-SNAPSHOT
>>>   [echo] Artifact Final Name: IntercomIntranet-1.2.53-SNAPSHOT
>>>
>>> woapplicationproperties:
>>>
>>> build-woapplication:
>>> [woapplication] Installing IntercomIntranet-1.2.53-SNAPSHOT in target
>>> [copy bootstrap] Copying 1 file to /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woa
>>>    [tar] Building tar: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar
>>>   [gzip] Building: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar.gz
>>> [delete] Deleting: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar
>>>    [tar] Building tar: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar
>>>   [gzip] Building: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar.gz
>>> [delete] Deleting: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar
>>> [INFO] [resources:testResources {execution: default-testResources}]
>>> [WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
>>> [INFO] skip non existing resourceDirectory /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/src/test/resources
>>> [INFO] [compiler:testCompile {execution: default-testCompile}]
>>> [INFO] No sources to compile
>>> [INFO] [surefire:test {execution: default-test}]
>>> [INFO] No tests to run.
>>> [INFO] [wolifecycle:package-woapplication {execution: default-package-woapplication}]
>>> [INFO] Starting to package WebObject project...
>>> [INFO] Attaching artifact: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar.gz
>>> [INFO] Attaching artifact: /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar.gz
>>> [INFO] [install:install {execution: default-install}]
>>> [INFO] Installing /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication to /Users/lars/.m2/repository/intercom/IntercomIntranet/1.2.53-SNAPSHOT/IntercomIntranet-1.2.53-SNAPSHOT.woapplication
>>> [INFO] Installing /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar.gz to /Users/lars/.m2/repository/intercom/IntercomIntranet/1.2.53-SNAPSHOT/IntercomIntranet-1.2.53-SNAPSHOT.woapplication.tar.gz
>>> [INFO] Installing /Users/lars/Documents/Assense/workspace/IntercomAll/Applications/IntercomIntranet/target/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar.gz to /Users/lars/.m2/repository/intercom/IntercomIntranet/1.2.53-SNAPSHOT/IntercomIntranet-1.2.53-SNAPSHOT.wowebserverresources.tar.gz
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] BUILD SUCCESSFUL
>>> [INFO] ------------------------------------------------------------------------
>>> [INFO] Total time: 44 seconds
>>> [INFO] Finished at: Wed Sep 08 16:17:19 CEST 2010
>>> [INFO] Final Memory: 14M/36M
>>> [INFO] ------------------------------------------------------------------------
>>> local-admins-macbook-pro:IntercomIntranet lars$
>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17
      • From: Lars Sonchocky-Helldorf <email@hidden>
References: 
 >Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17 (From: Lars Sonchocky-Helldorf <email@hidden>)

  • Prev by Date: Re: Apple Representation On WebObjects-Dev Mailing List?
  • Next by Date: Re: No template found for component Main at jar:file WEB-INF/lib/
  • Previous by thread: Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17
  • Next by thread: Re: maven-wolifecycle-plugin version 2.2.1 vs. 2.0.17
  • Index(es):
    • Date
    • Thread