[snip]
Luciano Resende wrote:
> Hi Sebastien
>
> Your understanding is very right, with the new artifactProcessor
> interfaces, we should be able to separate the load phases in multiple
> phases
> as you described.
>
> As for your specific questions, let me try to clarify :
>
>> - The assembly module deals with 3 types of files, .componentType,
> .constrainingType, .composite.
>> Does that mean I have to implement 3 ArtifactProcessors?
>
> Not necessarily, you can associate multiple file types with same
> processor,
> as an example, I had previously associated .scdl and .composite all
> with the
> SCDLProcessor. It all depends on the algorithms used to process these
> files,
> if they are the same or very simmilar, you might consider building one
> artifact processor, otherwise, you should create multiple processors
>
>> If the answer is yes, how do I associate a particular ArtifactProcessor
> with a file type?
>
> Basically, the PackageProcessors will scan a file system or jar archive
> contribution, and for each artifact, it will use the contentType
> describer
> to identify what type of file it is, and call the artifactProcessor
> registered for the artifact type. At the moment, an artifactProcessor can
> only register for one type, but you make the contentType describer
> recognize
> multiple files extensions as one unique type as the example I described
> above (.scdl and .composite).
>
> Talking about this, one thing that I wasn't planning to do for now, is
> plugability to extend the contentType describer, so new types could be
> recognized... but I'm starting to think we might need this ? Thoughts ?
>
> BTW, I should have the artifactResolver registry and other things
> necessary
> to exercise the processors you are implementing by EOD today (sometime
> tonight) ...
>
I think that we need to make this extensible, to support different
content types without having to go change the code in a central
ContentDescriber. I'm also not sure about how an artifact processor can
be associated with a content type.
So, instead of each extension having to:
- write a ContentDescriber that returns a ContentType for say .composite
files
- register the ContentDescriber in some registry
- having to know about an ArtifactProcessorRegistry in my
ArtifactProcessor implementation
- register myself in that registry with that content type for .composite...
Could we start simple and I would just implement a String
getContentType() method (to be added to ArtifactProcessor), return
".composite" from that method, and that would be your indication that
you need to invoke me on .composite files?
--
Jean-Sebastien
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org
|