On Thu, Jun 5, 2008 at 8:38 AM, Bruce Snyder <[EMAIL PROTECTED]> wrote:
> On Wed, Jun 4, 2008 at 11:29 PM, Chris Custine <[EMAIL PROTECTED]> wrote:
>> Following up on this old thread, I have started to experiment with
>> separating the SMX3 components into their own projects locally and I have
>> some more details to review.  If anyone has anything else to add feel free
>> to add your thoughts.  These ideas below are just intended to start the
>> discussion...
>>
>> 1).  I have assumed that we would want each component to have its own
>> trunk/branches/tags structure in SVN in order to do releases for each
>> component separately.
>> Example:
>> -> components
>>        -> bindings
>>                -> servicemix-cxf-bc
>>                    -> trunk
>>                    -> branches
>>                    -> tags
>>                -> servicemix-file
>>                    -> trunk
>>                    -> branches
>>                    -> tags
>>                -> servicemix-ftp
>>                    -> trunk
>>                    -> branches
>>                    -> tags
>>                -> ...
>>        -> serviceengines
>>                -> servicemix-bean
>>                    -> trunk
>>                    -> branches
>>                    -> tags
>>                -> servicemix-camel
>>                    -> trunk
>>                    -> branches
>>                    -> tags
>>                -> servicemix-cxf-se
>>                    -> trunk
>>                    -> branches
>>                    -> tags
>>                -> ...
>
> Yes, I agree with the ideas above. This matches exactly what I've been
> thinking.
>
>> This seems logical in order to avoid creating an entire release of
>> ServiceMix when all we need is a specific fix for a single component.  Does
>> anyone have specific opinions on this or suggestions for different
>> names/structure?
>
> The only suggestion I have is to shorten the name of serviceengines to
> engines similar to the way that you've already shortened
> bindingcomponents to bindings. My goal is to simplify the concepts in
> the docs as much as possible and I've found through all the consulting
> and training I've done with ServiceMix that shortening those names
> helps folks to get over the JBI nomenclature in their minds.
>
>> 2).  Any change like the first item above breaks the ability to build all of
>> the components in a single maven build.  One way to get around this is to
>> have a specific module somewhere that uses svn externals to get all
>> components so that a single build can cover all components.  I think this
>> would primarily be for convenience in testing and for CI builds.  I am
>> thinking that we would only need the trunk of each component.
>
> I think that this is easy to work around by creating a separate
> assembly for whatever we need, e.g., one to build all binding
> components, another to build all service engines, another to build all
> components. etc.
>
>> 3).  Because the components are going to be separate from any SMX version,
>> we will need some strategy for testing the components against SMX3 or SMX4
>> or both in the same build (I am thinking we could use profiles).  The real
>> question is how to do this now that the components will live on their own.
>> Ideas are welcomed...
>
> I've given this some thought and I've come to the conclusion that we
> need to use mocks. This can be done in one of two ways:
>
> 1) Build out more a feature complete mock framework by moving the
> classes in the servicemix-core component's
> org.apache.servicemix.tck.mock package to a separate project named
> servicemix-mock, OR
>
> 2) Use EasyMock (http://easymock.org/) to mock all the necessary
> behavior provided by an embedded SMX container and anything else
> surrounding it.
>
> In the past I've used both of these approaches for various projects
> and each has its own set of advantages and disadvantages. I lean
> toward the use of EasyMock because it's more flexible than creating
> our own mock objects simply because I've found that mock objects are
> constantly being refactored to account for unforeseen items. I'm gonna
> start with the EasyMock approach.

I don't really see why we should not continue using the containers for
unit testing.  It would be a major work to remove the references to
the container, or even to rewrite all the tests using mocks instead of
the containers.  Furthermore, booting smx3 is very fast and
lightweight.

> Bruce
> --
> perl -e 'print unpack("u30","D0G)[EMAIL 
> PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> );'
>
> Apache ActiveMQ - http://activemq.org/
> Apache Camel - http://activemq.org/camel/
> Apache ServiceMix - http://servicemix.org/
> Apache Geronimo - http://geronimo.apache.org/
>
> Blog: http://bruceblog.org/
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to