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.
Seen with Product Version: NetBeans IDE Dev (Build 200708270201) Java: 1.6.0_01; Java HotSpot(TM) Client VM 1.6.0_01-b06 System: Windows XP version 5.1 running on x86; Cp1252; en_US (nb) Userdir: C:\Documents and Settings\lautz\.netbeans\dev 1. Open the attached BPEL module as a project. 2. Define a new comp app and open it in the CASA editor. 3. Dnd The BPEL module into the CASA editor. 4. Click the Build Project button. 5. Add a new SOAP WSDL port. 6. Draw a connection between the new SOAP WSDL port and the original SOAP WSDL port (BC-BC). 7. Click the CASA Build Project button again. 8. Add a new WSDL port (doesn't seem to matter the type) between the 2 existing WSDL ports. 9. Delete the connection between the two SOAP WSDL ports in #6. 10. Click the CASA Build Project button again. => A connection is added between the Consumes endpoint of the SOAP WSDL port that was the consumer of the BC-BC connection in #6 and Provides endpoint of the BPEL project. Screenshot attached.
Created attachment 47810 [details] BPEL project used in scenario
Created attachment 47811 [details] Screenshot including added connection between Casaport2 and BPELModule2
The observed behavior is correct. In step 7, the automatic build process in compapp generates a new connection between the new SOAP WSDL port (created in step 5) and BPEL Module. However, since the user has already created a connection between the new SOAP WSDL port and the old SOAP WSDL port, and one consume endpoint is only allowed to connect to at most one provider, that auto-generated new connection is suppressed, as indicated in the following build output message (I need to update the text to be more user friendly. Do you think such message helpful to the user? Should I hide it?): ... INFO: A Consume endpoint (org.netbeans.modules.compapp.projects.jbi.descriptor.endpoints.model.Endpoint@12f6fbb) is only allowed to connect to at most 1 provider. . Old connection (org.netbeans.modules.compapp.projects.jbi.descriptor.endpoints.model.Connection@1508179) is replaced by the new one (org.netbeans.modules.compapp.projects.jbi.descriptor.endpoints.model.Connection@64462d). ... When you delete the user-created connection in step 9, the auto-generated connection surfaces because it is no longer being suppressed by user-created connection. If you don't want this auto-generated connection, you can simply delete it, and this deletion will be persisted in future builds.
I think this is a usability issue, and so will lower it to a P4. Based on usability guidelines I've worked with in the past (NB doesn't have many for behavior), the editor should either provide some feedback about what's happening with connections suppressing other connections (maybe "ghosts" of defaults/autogen'ed items being overridden/suppressed), or CASA should produce what the user expects, based on the currently visible state of the CASA design. The automatic generation of the connection at #10 makes sense from a model point of view, because the model knows that the interface was set automatically by the BC-BC connection the user drew. As a user, I drew something and deleted it. I don't expect new connections to appear. As for the message at #7: I have to maximize the CASA editor window to work, so I don't see the output messages unless I look for them. I'm a good naive end user. :) I wouldn't remove them, because they at least provide a clue that an unseen connection is lurking under the surface.
This is fine by me. Actually you are not the first one surprised by this behavior. > As a user, I drew something and deleted it. I don't expect new connections to appear. Yes, this is the design. The connection you deleted doesn't reappear. The reappearing one is a different connection (sharing the same consume endpoint with the deleted one). The message has been changed to something like: INFO: A new connection ({CompositeApp1}casaService1.casaPort1 -> {http://enterprise.netbeans.org/bpel/BpelModule2/newProcess}PartnerLink1.newWSDLPortTypeRole_myRole) is suppressed by an existing connection ({CompositeApp1}casaService1.casaPort1 -> {http://j2ee.netbeans.org/wsdl/newWSDL}newWSDLService.newWSDLPort).