tuscany-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ramkumar R" <ramkumar...@gmail.com>
Subject Re: How do you plug in validation monitoring?
Date Fri, 02 May 2008 10:46:47 GMT
Hi Simon,
While converting the error/warning messages over to the monitor using
TUSCANY-2277, i realized that it would be a tedious/not a practical job to
include monitor in all parts of the code.

For example, for converting the messages from all the ArtifactProcessor (for
which we have 74 instances), I feel it would not be a good idea to pass on
the monitor to each constructor and use them accordingly. Instead what we
can try is to catch the exception thrown by ArtifactProcessor and log them
into the monitor from the calling classes like ContributionServiceImpl
OR CompositeBuilderImpl
OR CompositeActivatorImpl.

Hope this would help. Please let me know your thoughts. Thanks.

-- 
Thanks & Regards,
Ramkumar Ramalingam

On 4/29/08, Ramkumar R <ramkumar.rj@gmail.com> wrote:
>
> Hi Simon,
> Thanks for your detailed comments, that gives a clear picture. I have now
> opened a JIRA (TUSCANY-2277) to address this issue. By this defect we
> will standardize the way messages are logged into the monitor.
>
> Will keep things posted in this thread for any complicated situations and
> if i am not sure about any exceptions that are thrown.
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>
>  On 4/29/08, Simon Laws <simonslaws@googlemail.com> wrote:
> >
> > On Mon, Apr 28, 2008 at 1:42 PM, Ramkumar R <ramkumar.rj@gmail.com>
> > wrote:
> >
> > > On 4/25/08, Simon Laws <simonslaws@googlemail.com> wrote:
> > > >
> > > > On Thu, Apr 24, 2008 at 5:36 PM, Simon Laws <
> > simonslaws@googlemail.com>
> > > > wrote:
> > > >
> > > > >
> > > > >
> > > > > On Wed, Apr 23, 2008 at 5:39 AM, Hasan Muhammad <appaos@gmail.com>
> > > > wrote:
> > > > >
> > > > > > Hi Simon,
> > > > > >
> > > > > > I opened JIRA 2260 and attached a second batch of validation
> > test
> > > > cases.
> > > > > >
> > > > > > regards
> > > > > > Hasan
> > > > > >
> > > > > > On Tue, Apr 22, 2008 at 8:16 AM, Hasan Muhammad <
> > appaos@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Simon
> > > > > > >
> > > > > > > I opened JIRA 2255 and attached a patch for the new testcases.
> > > > > > >
> > > > > > > Hasan
> > > > > > >
> > > > > > >
> > > > > > > On Fri, Apr 18, 2008 at 12:58 PM, Simon Laws <
> > > > > > simonslaws@googlemail.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > On Thu, Apr 17, 2008 at 5:44 PM, Simon Laws <
> > > > > > simonslaws@googlemail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Thu, Apr 17, 2008 at 5:02 PM, Hasan Muhammad <
> > > > appaos@gmail.com>
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi Simon,
> > > > > > > > > >
> > > > > > > > > > We should have an api for plugins to provide a resource
> > > bundle.
> > > > > > This
> > > > > > > > api
> > > > > > > > > > probably needs to be on the monitor or somewhere, i am
> > not
> > > > sure.
> > > > > > But
> > > > > > > > the
> > > > > > > > > > scenario occurs when plugins want to use the default
> > Monitor
> > > > but
> > > > > > > > still
> > > > > > > > > > want
> > > > > > > > > > to use their own resource bundle for messageIDs.
> > > > > > > > > >
> > > > > > > > > > regards
> > > > > > > > > > Hasan
> > > > > > > > > >
> > > > > > > > > > On Wed, Apr 16, 2008 at 3:30 PM, Hasan Muhammad <
> > > > > > appaos@gmail.com>
> > > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > > Hi Simon,
> > > > > > > > > > >
> > > > > > > > > > > I looked at the new Monitor and Problem interfaces.
> > What
> > > do
> > > > > > > > > > getMessageId()
> > > > > > > > > > > and getMessageParams() actually return? is MessageId a
> > way
> > > to
> > > > > > > > > > categorize the
> > > > > > > > > > > error message?
> > > > > > > > > > >
> > > > > > > > > > > regards
> > > > > > > > > > > Hasan
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > On Tue, Apr 15, 2008 at 10:59 AM, Hasan Muhammad <
> > > > > > appaos@gmail.com
> > > > > > > > >
> > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > >
> > > > > > > > > > > > I was wondering if i can cook up some validation
> > test
> > > cases
> > > > > > if
> > > > > > > > they
> > > > > > > > > > do
> > > > > > > > > > > > not exist. Or should we wait until the monitor issue
> > is
> > > > > > resolved
> > > > > > > > ?
> > > > > > > > > > > >
> > > > > > > > > > > > Hasan
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, Apr 10, 2008 at 4:34 PM, Hasan Muhammad <
> > > > > > > > appaos@gmail.com>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > >
> > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > >
> > > > > > > > > > > > > I dont think using an underlying tuscany jdk
> > logger
> > > would
> > > > > > be
> > > > > > > > > > useful to
> > > > > > > > > > > > > plugins as they may not want to log, rather show
> > it
> > > > > > somewhere
> > > > > > > > else
> > > > > > > > > > such as
> > > > > > > > > > > > > console etc. Tuscany can use an underlying logger
> > in
> > > it's
> > > > > > own
> > > > > > > > > > monitor ( as
> > > > > > > > > > > > > it uses today). But i think the first approach of
> > > using a
> > > > > > > > monitor
> > > > > > > > > > is better
> > > > > > > > > > > > > along with the condition that it be made more
> > usable
> > > by
> > > > > > the
> > > > > > > > > > plugins by
> > > > > > > > > > > > > giving them greater control.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Another point is that tuscany should use
> > > ResourceBundle
> > > > > > for
> > > > > > > > > > validation
> > > > > > > > > > > > > messages as well. I dont think this is being done
> > > today.
> > > > > > > > > > > > >
> > > > > > > > > > > > > regards
> > > > > > > > > > > > > Hasan
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Wed, Apr 9, 2008 at 1:22 PM, Simon Laws <
> > > > > > > > > > simonslaws@googlemail.com>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > On Wed, Apr 9, 2008 at 12:49 PM, Simon Laws <
> > > > > > > > > > > > > > simonslaws@googlemail.com>
> > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Wed, Apr 9, 2008 at 12:00 PM, Hasan
> > Muhammad <
> > > > > > > > > > appaos@gmail.com>
> > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > I am on revision 634808. The
> > > > ContributionServiceImpl
> > > > > > has
> > > > > > > > > > changed
> > > > > > > > > > > > > > since
> > > > > > > > > > > > > > > > then,
> > > > > > > > > > > > > > > > and with the one that i have, it would lead
> > > through
> > > > > > the
> > > > > > > > > > > > > > > > CompositeProcessor
> > > > > > > > > > > > > > > > instead of the CompositeDocumentProcessor.
> > Hence
> > > > the
> > > > > > > > > > difference
> > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > exceptions..
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Also, dont you think that with the error
> > that
> > > you
> > > > > > got
> > > > > > > > should
> > > > > > > > > > > > > > throw an
> > > > > > > > > > > > > > > > exception with schema validation, rather
> > than
> > > just
> > > > a
> > > > > > > > > > warning?
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hasan
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On Wed, Apr 9, 2008 at 6:36 AM, Simon Laws <
> > > > > > > > > > > > > > simonslaws@googlemail.com>
> > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Tue, Apr 8, 2008 at 2:58 PM, Hasan
> > Muhammad
> > > <
> > > > > > > > > > > > > > appaos@gmail.com>
> > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Simon,
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Thank you for the good information.
> > First up
> > > i
> > > > > > am
> > > > > > > > trying
> > > > > > > > > > to
> > > > > > > > > > > > > > verify
> > > > > > > > > > > > > > > > > whether
> > > > > > > > > > > > > > > > > > the schema validation works when we
> > point to
> > > > our
> > > > > > > > > > schemas.
> > > > > > > > > > > > > > Can you
> > > > > > > > > > > > > > > > let me
> > > > > > > > > > > > > > > > > > know what is a simple error that i can
> > > > introduce
> > > > > > so
> > > > > > > > that
> > > > > > > > > > i
> > > > > > > > > > > > > > can
> > > > > > > > > > > > > > > > verify
> > > > > > > > > > > > > > > > > > this?
> > > > > > > > > > > > > > > > > > I tried doing this to my composite file
> > (In
> > > > > > block
> > > > > > > > red):
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >  <component
> > name="MyServiceComponentNew">
> > > > > > > > > > > > > > > > > >    <implementation.java
> > > > > > > > > > > > > > > > >
> > > class="mysca.test.myservice.impl.MyServiceImpl"/>
> > > > > > > > > > > > > > > > > >    *<binding.ws/>*
> > > > > > > > > > > > > > > > > >    <property name="location"
> > > > > > source="$newLocation"/>
> > > > > > > > > > > > > > > > > >    <property name="year"
> > source="$newYear"/>
> > > > > > > > > > > > > > > > > >  </component>
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > This resulted in the following
> > exception,
> > > but i
> > > > > > > > think
> > > > > > > > > > this
> > > > > > > > > > > > > > is part
> > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > validation done by artifact processor
> > and
> > > would
> > > > > > > > result
> > > > > > > > > > even
> > > > > > > > > > > > > > if we
> > > > > > > > > > > > > > > > > comment
> > > > > > > > > > > > > > > > > > out the schema validation.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > org.apache.tuscany.sca.contribution.service.ContributionReadException:
> > > > > > > > > > > > > > > > > > Unexpected <binding> element found. It
> > > should
> > > > > > appear
> > > > > > > > > > inside
> > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > <service>
> > > > > > > > > > > > > > > > > or
> > > > > > > > > > > > > > > > > > <reference> element
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read(CompositeProcessor.java:373)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read(CompositeProcessor.java:75)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.read(ExtensibleStAXArtifactProcessor.java:83)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processReadPhase(ContributionServiceImpl.java:475)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution(ContributionServiceImpl.java:383)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute(ContributionServiceImpl.java:202)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.soa.sca.runtime.impl.DomainCompositeHelper.addContribution(DomainCompositeHelper.java:75)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.soa.sca.runtime.impl.SCAContainerComponentImpl.startComposite(SCAContainerComponentImpl.java:235)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.soa.sca.admin.runtime.tuscany.SCATuscanyRuntimeHandlerImpl.startModule(SCATuscanyRuntimeHandlerImpl.java:125)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.soa.sca.admin.runtime.impl.SCARuntimeImpl.start(SCARuntimeImpl.java:349)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.soa.sca.admin.runtime.impl.SCARuntimeImpl.start(SCARuntimeImpl.java:446)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:331)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:126)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:281)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:768)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:348)
> > > > > > > > > > > > > > > > > >    at
> > > > > > > > > > > > > >
> > > > > > com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1487)
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > regards
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On Tue, Apr 8, 2008 at 5:56 AM, Simon
> > Laws <
> > > > > > > > > > > > > > > > simonslaws@googlemail.com>
> > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Mon, Apr 7, 2008 at 4:33 PM, Hasan
> > > > Muhammad
> > > > > > <
> > > > > > > > > > > > > > appaos@gmail.com>
> > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Currently, i see that we have
> > various
> > > > places
> > > > > > > > where
> > > > > > > > > > we
> > > > > > > > > > > > > > can plug
> > > > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > > > > > validation
> > > > > > > > > > > > > > > > > > > > monitoring. Some of the ones that i
> > > found
> > > > > > are in
> > > > > > > > the
> > > > > > > > > > > > > > > > > > > > ReallySmallRuntimeBuilder as shown
> > > below:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >    public static CompositeBuilder
> > > > > > > > > > > > > > > > > > createCompositeBuilder(AssemblyFactory
> > > > > > > > > > > > > > > > > > > > assemblyFactory,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >  SCABindingFactory
> > > > > > > > > > > > > > > > > > > > scaBindingFactory,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > IntentAttachPointTypeFactory
> > > > > > > > > > > > > > intentAttachPointTypeFactory,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > InterfaceContractMapper
> > > > > > interfaceContractMapper,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >  List<PolicySet>
> > > > > > > > > > > > > > > > > > > > domainPolicySets) {
> > > > > > > > > > > > > > > > > > > >        return new
> > > > > > > > > > CompositeBuilderImpl(assemblyFactory,
> > > > > > > > > > > > > > > > > > > scaBindingFactory,
> > > > > > > > > > > > > > > > > > > > intentAttachPointTypeFactory,
> > > > > > > > > > interfaceContractMapper,
> > > > > > > > > > > > > > > > > > domainPolicySets,
> > > > > > > > > > > > > > > > > > > > null);
> > > > > > > > > > > > > > > > > > > >    }
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >    public static DomainBuilder
> > > > > > > > > > > > > > > > createDomainBuilder(AssemblyFactory
> > > > > > > > > > > > > > > > > > > > assemblyFactory,
> > > > > > > > > > > > > > > > > > > >            SCABindingFactory
> > > > > > scaBindingFactory,
> > > > > > > > > > > > > > > > > > >
> > >            IntentAttachPointTypeFactory
> > > > > > > > > > > > > > > > > intentAttachPointTypeFactory,
> > > > > > > > > > > > > > > > > > > >            InterfaceContractMapper
> > > > > > > > > > > > > > interfaceContractMapper,
> > > > > > > > > > > > > > > > > > > >            List<PolicySet>
> > > > domainPolicySets)
> > > > > > {
> > > > > > > > > > > > > > > > > > > >        return new
> > > > > > > > > > DomainWireBuilderImpl(assemblyFactory,
> > > > > > > > > > > > > > > > > > > > scaBindingFactory,
> > > > > > > > > > > > > > > > > > > > intentAttachPointTypeFactory,
> > > > > > > > > > interfaceContractMapper,
> > > > > > > > > > > > > > > > > > domainPolicySets,
> > > > > > > > > > > > > > > > > > > > null);
> > > > > > > > > > > > > > > > > > > >    }
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Instead of passing null, we can pass
> > in
> > > our
> > > > > > own
> > > > > > > > > > > > > > > > > CompositeBuildMonitor.
> > > > > > > > > > > > > > > > > > > Are
> > > > > > > > > > > > > > > > > > > > these the only places where we need
> > to
> > > do
> > > > > > this?
> > > > > > > > or
> > > > > > > > > > are
> > > > > > > > > > > > > > there
> > > > > > > > > > > > > > > > other
> > > > > > > > > > > > > > > > > > > places
> > > > > > > > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > > > > > well?
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Hasan
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Hi Hasan
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > There are a few places that logically
> > we
> > > need
> > > > > > to
> > > > > > > > be
> > > > > > > > > > able
> > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > validate
> > > > > > > > > > > > > > > > > > input
> > > > > > > > > > > > > > > > > > > and hence add monitors. The story is
> > > changing
> > > > > > a
> > > > > > > > little
> > > > > > > > > > as
> > > > > > > > > > > > > > we are
> > > > > > > > > > > > > > > > > moving
> > > > > > > > > > > > > > > > > > > toward the new "workspace"  code for
> > > managing
> > > > > > > > > > > > > > contributions but
> > > > > > > > > > > > > > > > > > logically
> > > > > > > > > > > > > > > > > > > I
> > > > > > > > > > > > > > > > > > > would expect to be running validating
> > on
> > > at
> > > > > > least
> > > > > > > > the
> > > > > > > > > > > > > > following
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > - Contribution processing
> > > > > > > > > > > > > > > > > > >   - dependency (imports/exports)
> > analysis
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > [org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl]
> > > > > > > > > > > > > > > > > > > - Composite read
> > > > > > > > > > > > > > > > > > >   - schema compliance
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > [org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory
> > > > > > > > > > > > > > > > > > > - only appears to be initialized in
> > > > > > > > > > > > > > ReallySmallRuntimeBuilder so
> > > > > > > > > > > > > > > > need
> > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > look at this in context of workspace]
> > > > > > > > > > > > > > > > > > >   - policy intent matching
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > >
> > [org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor]
> > > > > > > > > > > > > > > > > > >   - extension availability [General
> > > artifact
> > > > > > > > processor
> > > > > > > > > > > > > > hierarchy]
> > > > > > > > > > > > > > > > > > > - Composite resolve
> > > > > > > > > > > > > > > > > > >   - ensure that artifacts required by
> > the
> > > > > > > > composite
> > > > > > > > > > are
> > > > > > > > > > > > > > available
> > > > > > > > > > > > > > > > > > [General
> > > > > > > > > > > > > > > > > > > artifact resolver hierarchy]
> > > > > > > > > > > > > > > > > > > - Composite build
> > > > > > > > > > > > > > > > > > >   - ensure that the composite is valid
> > and
> > > > > > > > consistent,
> > > > > > > > > > > > > > e.g. unique
> > > > > > > > > > > > > > > > > > > component names, valid reference
> > targets
> > > etc.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > >
> > [org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl]
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > I've noted in the square brackets
> > where
> > > this
> > > > > > > > function
> > > > > > > > > > > > > > currently
> > > > > > > > > > > > > > > > is.
> > > > > > > > > > > > > > > > > Note
> > > > > > > > > > > > > > > > > > > also that I'm making no comment here
> > about
> > > > > > whether
> > > > > > > > the
> > > > > > > > > > > > > > > > construction of
> > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > in-memory composite model is for use
> > > purely
> > > > > > for
> > > > > > > > > > > > > > contribution
> > > > > > > > > > > > > > > > > processing
> > > > > > > > > > > > > > > > > > or
> > > > > > > > > > > > > > > > > > > is going to activated and started in a
> > > > > > runtime.
> > > > > > > > This
> > > > > > > > > > > > > > validation is
> > > > > > > > > > > > > > > > > > > appropriate in both cases although you
> > may
> > > > > > choose
> > > > > > > > to
> > > > > > > > > > use
> > > > > > > > > > > > > > different
> > > > > > > > > > > > > > > > > > > monitors
> > > > > > > > > > > > > > > > > > > in the two cases.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > So what I suggest as a first step is
> > that
> > > you
> > > > > > go
> > > > > > > > ahead
> > > > > > > > > > and
> > > > > > > > > > > > > > change
> > > > > > > > > > > > > > > > > > > ReallySmallRuntimeBuilder to plug a
> > > monitor
> > > > > > into
> > > > > > > > > > > > > > > > CompositeBuilderImpl
> > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > see
> > > > > > > > > > > > > > > > > > > how it works. We can work here to
> > build a
> > > > > > > > consistent
> > > > > > > > > > view
> > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > - all the places a monitor is required
> > > > > > > > > > > > > > > > > > > - what should the plugin model for
> > > monitors
> > > > be
> > > > > > > > > > > > > > > > > > > - the flow of control (monitors vs
> > > > exceptions)
> > > > > > > > > > > > > > > > > > > - what extra features may be required,
> > > I18N
> > > > > > etc.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > I'm going to try a few experiments too
> > to
> > > > > > > > familiarize
> > > > > > > > > > > > > > myself with
> > > > > > > > > > > > > > > > this
> > > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > > > > bit
> > > > > > > > > > > > > > > > > > > more.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Regards
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Simon
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Hi Hasan
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > The change you suggest should cause a
> > schema
> > > > > > > > validation
> > > > > > > > > > error.
> > > > > > > > > > > > > > I made
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > change locally in samples/calculator and
> > see
> > > the
> > > > > > > > following
> > > > > > > > > > > > > > output in
> > > > > > > > > > > > > > > > > stdout
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > 08-Apr-2008 22:41:54
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.processor.ValidatingXMLStreamReader$1
> > > > > > > > > > > > > > > > > error
> > > > > > > > > > > > > > > > > WARNING: XMLSchema validation problem in:
> > > null,
> > > > > > line:
> > > > > > > > 28,
> > > > > > > > > > > > > > column: 5
> > > > > > > > > > > > > > > > > cvc-complex-type.2.4.a: Invalid content
> > was
> > > found
> > > > > > > > starting
> > > > > > > > > > > > > > with
> > > > > > > > > > > > > > > > element '
> > > > > > > > > > > > > > > > > binding.ws'. One of '{"
> > > > > > > > http://www.osoa.org/xmlns/sca/1.0
> > > > > > > > > > ":include,
> > > > > > > > > > > > > > "
> > > > > > > > > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0":service,
> > "
> > > > > > > > > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0":property,
> > "
> > > > > > > > > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0
> > ":component,
> > > "
> > > > > > > > > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0
> > ":reference,
> > > "
> > > > > > > > > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0":wire,
> > > > > > WC[##other:"
> > > > > > > > > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0"]}' is
> > > > expected.
> > > > > > > > > > > > > > > > > 08-Apr-2008 22:41:54
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor
> > > > > > > > > > > > > > > > > read
> > > > > > > > > > > > > > > > > WARNING: Element {
> > > > > > > > > > http://www.osoa.org/xmlns/sca/1.0}binding.ws<http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > <http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > > <
> > > > http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > > > > > <http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > > > > > > > <http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > > > > > > > > > <http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > > > > > > > > > > > > > <http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws>
> > > > > > > > > > > > > > > > <
> > http://www.osoa.org/xmlns/sca/1.0%7Dbinding.ws
> > > > > > >cannot
> > > > > > > > be
> > > > > > > > > > > > > > > > > processed. ([row,col {unknown-source}]:
> > > [28,5])
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > No exception is raised though.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Let me take a look at what has changed.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Simon
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Ok, thanks for that Hasan. I see the change
> > you
> > > are
> > > > > > > > > > referencing.
> > > > > > > > > > > > > > I'm not
> > > > > > > > > > > > > > > sure why the exception is no longer thrown.
> > The
> > > code
> > > > > > is
> > > > > > > > still
> > > > > > > > > > in
> > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > CompositeProcessor to trap the case but maybe
> > the
> > > > > > > > offending
> > > > > > > > > > > > > > element is
> > > > > > > > > > > > > > > removed from the stream because of the
> > validation
> > > > > > warning.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I would argue that we shouldn't mandate that
> > an
> > > > > > exception
> > > > > > > > is
> > > > > > > > > > > > > > thrown in
> > > > > > > > > > > > > > > this case but that the validation mechanism is
> > > opened
> > > > > > up
> > > > > > > > to
> > > > > > > > > > the
> > > > > > > > > > > > > > monitor API
> > > > > > > > > > > > > > > so that a monitor can be attached and those
> > who
> > > are
> > > > > > > > embedding
> > > > > > > > > > > > > > tuscany can
> > > > > > > > > > > > > > > decide how they want to deal with errors like
> > > this.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Simon
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I've just been through the original list again
> > > looking
> > > > > > at
> > > > > > > > what
> > > > > > > > > > > > > > happens with
> > > > > > > > > > > > > > validation types errors (by which I mean a
> > workspace
> > > > > > type
> > > > > > > > admin
> > > > > > > > > > > > > > console
> > > > > > > > > > > > > > would reasonably want to display based on user
> > > > > > > > input/changes).
> > > > > > > > > > This
> > > > > > > > > > > > > > is what
> > > > > > > > > > > > > > I found.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > - Contribution processing
> > > > > > > > > > > > > >   - dependency (imports/exports) analysis
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl
> > > > > > > > > > > > > >      uses a ContributionDependencyBuilderMonitor
> > > > > > > > > > > > > > - Composite read
> > > > > > > > > > > > > >   - schema compliance
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > >
> > > >
> > >
> > org.apache.tuscany.sca.contribution.processor.DefaultValidatingXMLInputFactory
> > > > > > > > > > > > > >      Uses writes to local JDK Logger
> > > > > > > > > > > > > >    - policy intent matching
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor
> > > > > > > > > > > > > >      Throws exceptions
> > > > > > > > > > > > > >    - extension availability
> > > > > > > > > > > > > >     General artifact processor hierarchy
> > > > > > > > > > > > > >      Throws exceptions
> > > > > > > > > > > > > >   - SCA compliance, e.g. annotation correctness
> > > > > > > > > > > > > >     General artifact processor hierarchy
> > > > > > > > > > > > > >     Throws exceptions
> > > > > > > > > > > > > > - Composite resolve
> > > > > > > > > > > > > >   - ensure that artifacts required by the
> > composite
> > > are
> > > > > > > > > > available
> > > > > > > > > > > > > >     General artifact resolver hierarchy
> > > > > > > > > > > > > >      Throws exceptions
> > > > > > > > > > > > > > - Composite build
> > > > > > > > > > > > > >   - ensure that the composite is valid and
> > > consistent,
> > > > > > e.g.
> > > > > > > > > > unique
> > > > > > > > > > > > > > component names, valid reference targets etc.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > >
> > org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl
> > > > > > > > > > > > > >      uses a CompositeBuilderMonitor
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I would like to look for a more consistent
> > approach
> > > > > > across
> > > > > > > > these
> > > > > > > > > > > > > > various
> > > > > > > > > > > > > > elements of validation. The aim being to make it
> > > more
> > > > > > > > obvious
> > > > > > > > > > how to
> > > > > > > > > > > > > > recognize validation type errors and act
> > > accordingly.
> > > > > > There
> > > > > > > > has
> > > > > > > > > > been
> > > > > > > > > > > > > > a
> > > > > > > > > > > > > > relatively lengthy debate about how to group and
> > > report
> > > > > > > > errors
> > > > > > > > > > in
> > > > > > > > > > > > > > [1] which
> > > > > > > > > > > > > > is worth a read. The scenarios I have in mind
> > are
> > > > > > workspace
> > > > > > > > > > > > > > administration
> > > > > > > > > > > > > > type scenarios where, for example,  A user may
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Add a contribution and be notified that
> > > contributions
> > > > > > that
> > > > > > > > it
> > > > > > > > > > > > > > depends on are
> > > > > > > > > > > > > > not available
> > > > > > > > > > > > > > Look at a composite and be notified that there
> > are
> > > XML
> > > > > > > > and/or
> > > > > > > > > > SCA
> > > > > > > > > > > > > > errors
> > > > > > > > > > > > > > etc.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > From [1] we want to capture as many errors as
> > > possible
> > > > > > > > before
> > > > > > > > > > > > > > reporting back
> > > > > > > > > > > > > > to the user. Two things come immediately to
> > mind.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > 1 - Pull up the Monitor API and make it more
> > generic
> > > > > > (and
> > > > > > > > from
> > > > > > > > > > > > > > previous
> > > > > > > > > > > > > > comments here make it an extension point)
> > > > > > > > > > > > > > 2 - Rely on a Tuscany specific JDK logger and
> > remove
> > > > the
> > > > > > > > monitor
> > > > > > > > > > (or
> > > > > > > > > > > > > > at
> > > > > > > > > > > > > > least don't extend it further).
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > I'm going to think some more about these
> > options.
> > > Any
> > > > > > > > thoughts
> > > > > > > > > > or
> > > > > > > > > > > > > > more
> > > > > > > > > > > > > > options?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Simon
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > [1]
> > > > > > > > > > > > > >
> > > > > > > > > >
> > > > > >
> > http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg29878.html
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > Hi Hasan
> > > > > > > > >
> > > > > > > > > What do you mean in your question by "plugin". If you mean
> > an
> > > > > > Tuscany
> > > > > > > > > extension then I think we have that covered as each
> > extension
> > > > will
> > > > > > > > ship with
> > > > > > > > > any bundles that it needs and stll the default monitor can
> > be
> > > > > > used.
> > > > > > > > >
> > > > > > > > > Here is the model I have in my head of this.
> > > > > > > > >
> > > > > > > > > runtime
> > > > > > > > >   monitor
> > > > > > > > >   module (there are many of these in the runtime)
> > > > > > > > >     resource bundle
> > > > > > > > >     raises problems - each problem references the name of
> > a
> > > > > > resource
> > > > > > > > > bundle for the modules in question (I don't believe I can
> > get
> > > the
> > > > > > name
> > > > > > > > of
> > > > > > > > > the module automatically)
> > > > > > > > >
> > > > > > > > > So I'm anticipating that the runtime will create a single
> > > monitor
> > > > > > but
> > > > > > > > this
> > > > > > > > > is not a hard and fast rule.
> > > > > > > > >
> > > > > > > > > Each module/extension raises problems referencing the
> > resource
> > > > > > bundle
> > > > > > > > that
> > > > > > > > > it contains. Hence the module provides messages
> > appropriate to
> > > > > > errors
> > > > > > > > that
> > > > > > > > > it will raise. The resource bundle reference is by root
> > name
> > > so
> > > > > > there
> > > > > > > > is not
> > > > > > > > > reason why the resource bundle couldn't be put somewhere
> > else.
> > > > > > > > >
> > > > > > > > > If you want to change the default messages that are
> > provided,
> > > as
> > > > > > > > opposed
> > > > > > > > > to create a new extension with new messages, there are a
> > > number
> > > > of
> > > > > > > > options.
> > > > > > > > >
> > > > > > > > > - The source code approach - i.e. change the
> > bundles  provided
> > > > > > > > > - Provide new bundles first on the classpath - I think
> > they
> > > will
> > > > > > get
> > > > > > > > > picked up in preference to the default ones but I would
> > have
> > > to
> > > > > > test
> > > > > > > > it to
> > > > > > > > > see
> > > > > > > > > - We could reorganize the bundles so they are in their in
> > > their
> > > > > > own
> > > > > > > > > separate jars. Then you would provide a replacement jar.
> > > > > > > > > - Add an API to the monitor to allow a bundle mapping to
> > be
> > > > > > specified.
> > > > > > > > In
> > > > > > > > > this case though it seems easier to provide a new monitor
> > > > > > > > implementation
> > > > > > > > > rather than providing a new API.
> > > > > > > > >
> > > > > > > > > There are probably more options so any thoughts are
> > welcome.
> > > I'm
> > > > > > > > currently
> > > > > > > > > working on getting the new monitor integrated into the
> > > existing
> > > > > > > > modules
> > > > > > > > > (primarily assembly) so we will have something to try out.
> > We
> > > can
> > > > > > take
> > > > > > > > a
> > > > > > > > > look at these options for real when I'm done.
> > > > > > > > >
> > > > > > > > > Simon
> > > > > > > > >
> > > > > > > >
> > > > > > > > Hi
> > > > > > > >
> > > > > > > > I've just checked in the changes to do the basic integration
> > of
> > > the
> > > > > > > > monitor
> > > > > > > > extension with the rest of the code base. Its a light touch
> > end
> > > to
> > > > > > end
> > > > > > > > integration at the moment. Here are some of the TODOs
> > > > > > > >
> > > > > > > > - Move messages into resource bundles.
> > > > > > > > - Local monitors are still created in some places.
> > > > > > > > - If a monitor implementation is not found then a warning is
> > > raised
> > > > > > but
> > > > > > > > execution continues so that I don't have to change the
> > > dependencies
> > > > > > of
> > > > > > > > the
> > > > > > > > many tests that now don't pull in a monitor but also don't
> > raise
> > > > any
> > > > > > > > warnings. May want to address this but It's OK for the time
> > > being.
> > > > > > > >
> > > > > > > > Hopefully now the validation itests make more sense now. The
> > > test
> > > > to
> > > > > > > > look at
> > > > > > > > is the duplicate component name test. This is the only
> > message
> > > I've
> > > > > > > > moved
> > > > > > > > out into a resource bundle at the moment. Now I have the
> > basics
> > > in
> > > > > > I'll
> > > > > > > > move
> > > > > > > > all the messages and do the tidying up.
> > > > > > > >
> > > > > > > >  Also I've switched to using node instead of domain in the
> > > tests. I
> > > > > > > > notice
> > > > > > > > we need to do some work on the constructor for this type of
> > use.
> > > > > > I'll
> > > > > > > > work
> > > > > > > > on this too.
> > > > > > > >
> > > > > > > > Regards
> > > > > > > >
> > > > > > > > Simon
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > Hi Hasan
> > > > >
> > > > > have been running some of the validation code today and I notice
> > that
> > > > > quite a few of the reported error messages have their parameters
> > > > > miss-aligned. I.e. I often see an unexpanded {1}. This is down the
> > the
> > > > > builder warning() method being called with too few parameters. It
> > > takes
> > > > >
> > > > >  warning(String message, Object model, String...
> > messageParameters)
> > > > >
> > > > > So if i had a {0} and a {1} in the message I would use something
> > like
> > > > >
> > > > > warning("ReferenceIncompatibleInterface", composite,
> > > > > componentReference.getName(), componentService.getName());
> > > > >
> > > > > Where the two parameters are passed in at the end.
> > > > >
> > > > > Easy enough for me to go and fix the ones I find but thought I
> > would
> > > > raise
> > > > > it in case you are doing some more and spot mistakes.
> > > > >
> > > > > Regards
> > > > >
> > > > > Simon
> > > > >
> > > > Hi
> > > >
> > > > Actually I went through the places where warning is called and they
> > are
> > > all
> > > > pretty much perfect so I must have just hit the one bad one that
> > have a
> > > > missing parameter. As far as I know they are all good now.
> > > >
> > > > Simon
> > > >
> > >
> > > Hi Simon,
> > > I had a chance to look at the monitors that are being hooked up with
> > > different parts of the code and found some inconsistency interms of
> > > raising
> > > warning & errors. In some places we throw exceptions and in other
> > places
> > > we
> > > raise a warning. I also believe there are instances where we need to
> > do
> > > both, the below examples might give us some clue.....
> > >
> > > Here are some examples for the inconsistency.......
> > >
> > > BaseConfigurationBuilderImpl.java
> > > Here we raise only a warning for URISyntaxException, should we not
> > throw
> > > an
> > > exception too?
> > >
> > > BaseWireBuilderImpl.java
> > > Here we throw exceptions for IncompatibleInterfaceContractException,
> > don't
> > > you think we also need to register this message in our monitor?
> > > In the same class, we raise a warning message for the PolicyRelated
> > > Exceptions, should we also throw an exception here?
> > >
> > > CompositeProcessor.java
> > > There are instances where we throw new ContributionReadException, i
> > > believe
> > > registering this msg with a monitor is also required as this is caused
> > by
> > > incorrect user input.
> > >
> > > Like to know your views on this... so that we can consider a standard
> > way
> > > of
> > > raising warning/errors using the monitor.
> > >
> > > --
> > > Thanks & Regards,
> > > Ramkumar Ramalingam
> > >
> >
> > Hi Ram
> >
> > Good analysis. Looks like we've some work to do. I've just posted to an
> > oldish thread [1] about the implications of raising errors and warnings.
> > I
> > think from what you say we have to.
> >
> > 1. Make sure we are raising errors/warnings on the monitor rather than
> > throwing exceptions in code that is processing user input. I.e. we want
> > all
> > processing to complete as far as possible through each phase.
> > 2. Make those errors/exception available from the monitor. We need a
> > resettable cache
> > 3. Allow problems to be retrieved from the monitor and analyzed (printed
> > out
> > to the console in our case)
> >
> > Regards
> >
> > Simon
> >
> > [1] http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg29766.html
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message