Hi Scott, thank you to the reply. Good night for everybody. I tryed to create a new channel how you said. But I could not. Below I present the steps I did. Can anyone help me? Thanks.
First, I create a channel:
public IChannelListener presenceChannelListener = null; public IChannel channelLock;
public IChannel createChannelLock() throws ECFException { ID channelID = IDFactory.getDefault().createStringID("conclID");
org.eclipse.ecf.core.util.ECFException: send message exception at org.eclipse.ecf.provider.datashare.BaseChannel.sendMessage(BaseChannel.java:229) at br.ufes.lprm.concl.consistency.control.lock.EstruturaLock.Lock(EstruturaLock.java:46) // my class one a use the channel
at br.ufes.lprm.concl.awareness.outline.OutlineConclListener.actionPerformed(OutlineConclListener.java:60) // another class that is one GUI to the lock at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.net.ConnectException: not connected at org.eclipse.ecf.provider.generic.ClientSOContainer.checkConnected(ClientSOContainer.java:509) at org.eclipse.ecf.provider.generic.ClientSOContainer.sendMessage(ClientSOContainer.java:426)
at org.eclipse.ecf.provider.generic.SOContext.sendMessage(SOContext.java:230) at org.eclipse.ecf.provider.datashare.BaseChannel.sendMessage(BaseChannel.java:227) ... 29 more
On 9/15/2010 12:16 PM, Lucas Augusto Scotta Merlo wrote:
Hello everybody.
I'm finishing a project for
my theses's: one extension of ECF for NCL(language of
Brazilian Digital TV). In mine extension we include a lock
feature (lock) on the elements. To do this we create a message
type specifies to be treated on the other side. Then this
message's lock is sent to other user by
channel.sendMessage(DocShare.getOtherID(),
msg.serializeMsgLock());
To obtain the channel, we
create a "static object DocShare docShareNCL at DocShare
class, then we use in other class:
DocShare.docshare.getChannel();
Yet the message is not being
treated across the OT and only by our methods of blocking. We
use the same listener for OT e lock;
We can have only one
listener per channel? How I create one new channel?
So thanks.
Although this sounds fascinating, I don't quite understand what you
are trying to accomplish and so it's not immediately clear to me
what mechanism you need here...e.g. would you like to use the
*existing* DocShare channel to send your own message (so that the
delivery order of your message relative to other docshare messages)
is consistent (because channels are sender ordered...i.e. the order
that the messages on a given channel are received is the same as the
order that they are sent. This is only true for a single
channel...if messages are sent on different channels then the
delivery order is not guaranteed.
So by modifying the code that uses the DocShare created channel you
can insert your own message in the docshare/OT message stream...or
you can create/use a separate channel, but the delivery order of
your message on this second channel will not be related to the order
of messages received on the DocShare channel. If you do want a
second asynchronous channel, you can create a second channel by
using the IChannelContainerAdapter.createChannel(...). The DocShare
code does this to create/setup it's channel.
Also...it would be great if you would describe your thesis work a
little further on this list...and if you wish it might be good for
you to get involved with the current effort on the creation of a
wave provider (which also uses operational transformation)...i.e.
see [1].
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lucas Augusto Scotta Merlo
MSc in Computer - UFES http://www.inf.ufes.br/~scotta/