This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 95960 - Binding Components have an inconsistent interface
Summary: Binding Components have an inconsistent interface
Status: RESOLVED WONTFIX
Alias: None
Product: soa
Classification: Unclassified
Component: Binding Components (show other bugs)
Version: 5.x
Hardware: All All
: P4 blocker (vote)
Assignee: Narayana Rallabandi
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-19 16:54 UTC by dante
Modified: 2007-04-19 16:45 UTC (History)
0 users

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description dante 2007-02-19 16:54:36 UTC
Binding Component interfaces are inconsistent in the way that inbound and
outbound parameters values are defined. Some BCs (eg JDBC) allow you to define
XML Structures for the inbound and outbound element whereas other (eg SMTP)
force you to define multiple inbound / outbound parts. This inconsistency
reduces usability of the product. 

The components should be agnostic of the inbound / outbound part(s) and allow
the user to specify XML structures if required and then access them using XPath,
if XML Structure supplied, or directly if multiple parts are defined.


------------------------------------

KEYWORDS
VERSION: ALASKA 200702090600 (KENAI)
TEAM: FAST
Comment 1 Venkat Srinivasan 2007-02-28 06:37:20 UTC
Let's standardize for SMTP and JDBC to start with
Comment 2 Alexei Mokeev 2007-03-06 11:48:28 UTC
Removed EP551_WAIVER_APPROVED
Comment 3 Narayana Rallabandi 2007-04-19 03:29:18 UTC
This issue has implications with respect to each of the Binding Component or
different protocols under consideration. Each of the protocol has its own
protocol Metadata or way of representing the Metadata. For eg. SMTP has <From,
TO, CC, BCC, Subject, Body> etc. where as JMS has <QueueName, MachineName, JNDI
Name> etc. 

We have the following alternatives:

1. having wizard for each of the protocol for capturing the metadata and
generating the .xsd file at the end of the wizard like in case of JDBC.
2. having the fixed .xsd stored somewhere at a fixed location for the protocol.
like in case of HL7.

Both the approaches have their own pros and cons.

1. Wizard will be user friendly but lot of protocols are simple like in case of
SMTP just requiring few fields to be filled in. The user might not feel going
this route.
2. Having static .xsd file might be restrictive and user might not know the
location or might not have access to the net where from he needs to download the
.xsd for that protocol. 

Though during runtime we can capture this as message metadada and handle it with
a MessageMetadataHandler this has issues with respect to capturing the metadata
uniformly or with a consistent interface. Lets examine the issues those are
involved in solving the issue and see whether going for this adds any value or
should we leave this alone

1. Difference of metadata at protocol level (Explained above).
2. Inconsistent Interfaces across components for creation of the Metadata
3. Lot of components are already implemented and this currently involves
refactoring to the existing components both at design time and runtime. Bringing
them for a consensus might be an issue.
4. Last and most importantly lot of organizations have fixed set of .xsds which
model their business needs well and might be averse to have the fixed set of
.xsds imposed by us. They might feel that we are more restrictive. 

I would like to listen to any feed back. We need not have this currently as P2
so I am downgrading this to p5 and marking this as wont fix.
Comment 4 dante 2007-04-19 11:05:23 UTC
Narayanaa,

Ok I understand your reasoning but a key enhancement that should be possible
without affecting existing implementation is to extend the BC to allow the use
of XPath. If we take for example the SMTP BC when specifying the input parts;
subject, message, etc; I need to define them as multiple separate input parts
whereas what I may have is my company standard xsd structure for email and hence
I want to pass in a single input part based on this xsd and then reference the
subject element using XPath.

This would also resolve some of the questions you raised,i.e.;

1. We could have a single creation Wizard.
2. Do not have a static xsd.
3. This could be additional functionality so people using the exist, SMTP, BC
would continue working the same way but anyone wanting to us a structure can use
the new method.
Comment 5 Narayana Rallabandi 2007-04-19 16:45:17 UTC
You should still able to do that having your .xsd imported into the SMTP WSDL
and using the same in the input section. You should able to have the xpath
xpression and able to map element to element from the BPEL mapper itself if the
xsd structure are equal. If that does not happen currently that should be an
enhancement on the BPEL mapper.