User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Lightning/1.0b2 Thunderbird/3.1.9
On 4/1/2011 10:55 AM, Pierre Henry Perret wrote:
sorry for the misppell, I meant:
It
seems that rsa try to discover an rs in the bad container, I
mean it looks in the local container intead of remote, even if
it knows the rs containr id:
Pierre...could you please explain the following:
1) What discovery are you using?
2) What discovery do you want to use for your use case/example (if
different from 1)?
3) What you are trying to do
4) What is happening...in terms of discovery...and in terms of
import/export...on the host and consumer
5) How 4 differs from 3
Some background for you and everyone: ECF 3.5 includes a single
topology manager...the BasicTopologyManager...and the source for
this topology manager is here [1].
It's characteristics are that *by default* it does *not* allow
loopback imports...i.e. imports of remote services that are exported
by the same framework uuid. There is, however, a system property:
'org.eclipse.ecf.osgi.services.discovery.allowLoopbackReference' set
to false by default...and this *disables* the import of remote
services exported by the same framework uuid. If this property is
set to *true*, however...e.g.
Then remote services that are exported by the same framework will
also be imported by that same framework (the BasicTopologyManager
will discover the EndpointDescription and respond by importing the
discovered loopback reference).
Note: there is another system property for the BasicTopologyManager
that lets the *entire* scope for the BasicTopologyManager...which
implements EndpointListener...to be specified to any scope desired
for consumer-side discovery...e.g.
something like this will make it so that the BasicTopologyManager
will discover and import *every* EndpointDescription with
endpoint.id equal to the specified
jgroups:///sampleChannel?stackName=udp URI (and not discover any
endpoints that have any other endpoint id).
This allows a good deal of customization of the
BasicTopologyManager's discovery behavior, and export/import...but
when/if further customization is needed then other topology managers
can easily be created and used (on consumer and/or host)...by
creating/using some other sublclass of AbstractTopologyManager
[2]...or by creating one's own topology manager from scratch. This
is as specified by the OSGi RSA spec...as the spec intentionally
adds flexibility in the creation/use of the topology manager...so
that many use cases can be accomodated.
It's my intention and desire to eventually create a whole new wiki
page entitled 'Creating Custom TopologyManagers' and link it to the
Remote Service Admin wiki page [3]...but obviously I haven't yet
been able to do so. If others can/could contribute to such a thing,
then I would welcome the assistance/contribution.
!MESSAGE
org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.remoteserviceadmin;code=4;message=org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin:importService:selectRemoteServiceReference
returned null for
rsRefs=[],targetID=JGroupsID[jgroups:///sampleChannel?stackName=udp;null],idFilter=[Lorg.eclipse.ecf.core.identity.ID;@167e3a5,interfaces=[org.eclipse.ecf.examples.remoteservices.hello.IHello],rsFilter=null,rsContainerID=JGroupsID[jgroups:///QFvIUUIGCT+sOjHBYkkbC0vTgTY=;192.168.0.10:50453];severity4;exception=org.eclipse.ecf.core.ContainerConnectException:
connect timeout;children=[]]
It seems that rsa try to doscover a rs in the bas container,
I mean it looks in the local container intead of remote,
even if
it knows the ss containr id:
______________
!MESSAGE
org.eclipse.core.runtime.Status[plugin=org.eclipse.ecf.osgi.services.remoteserviceadmin;code=4;message=org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin:importService:selectRemoteServiceReference
returned null for
rsRefs=[],targetID=JGroupsID[jgroups:///sampleChannel?stackName=udp;null],idFilter=[Lorg.eclipse.ecf.core.identity.ID;@167e3a5,interfaces=[org.eclipse.ecf.examples.remoteservices.hello.IHello],rsFilter=null,rsContainerID=JGroupsID[jgroups:///QFvIUUIGCT+sOjHBYkkbC0vTgTY=;192.168.0.10:50453];severity4;exception=org.eclipse.ecf.core.ContainerConnectException:
connect timeout;children=[]]
________________________________________
That uplined jgroups id is the client's one id, so
there is a timeout !
For older versions of Equinox, the framework
uuid wasn't/isn't set by the framework itself,
so it can be necessary to create a uuid and
*set* the system property...there's code to do
this here [1]...in the getFrameworkUUID() method
(this is used within the ECF impl of RSA for
older versions of Equinox).
I ask that , because I would like to
put this static in generic-hello.xml edef
static bundle.
I have realized from your precedent
post , that I should know that in advance
and then set this property in the host ?
You can't/shouldn't set the framework
uuid...unless it's not already set. According
to recent OSGi spec, the framework uuid should
be set by the framework itself (and the code
pointed to above is only for older versions of
frameworks...that didn't set the uuid system
property).
Note if you wish you can set some other service
property and use that to filter on in the edef,
but in general you shouldn't be modifying the
framework uuid.
Great,
Scott! (uhm, that's sound like
the "Great Scott" american
famous exclamation... ;)
I was waiting for this
improvement in the wiki to
continue
investigating ECF usages. Maybe
I would suggest code examples to
bind
to specific services or similar.
Have you examined the 'hello'
examples? These support the usage
of multiple/alternative discovery
and distribution providers (e.g.
zeroconf, zookeeper, slp, dnssd for
discovery...r-osgi, ecf generic,
jms, xmpp, rest, etc for
distribution).
I'm not sure what you mean by 'bind
specific services or similar'.
I'm still a
bit confused about the
difference of a server/host URL
and the containerFactoryArgs
property,
ECF provider instances are created
via a container factory...and each
provider can optionally define an
arbitrary array of arguments that is
uses to initialize/configure the
container instance upon creation.
The containerFactoryArgs property
can be used to pass arbitrary
arguments to the container
factory...via the service properties
passed to the service registration
call.
The ECF generic provider takes a
single argument that allows one to
specify the server/host URI for that
provider...with default of:
ecftcp://localhost:3282/server
Note that this is for the generic
provider only...and other providers
take other arguments (or take no
arguments at all). Each provider
has it's own configuration
requirements (and it's own
expected/required set of
containerFactoryArgs).
Note that if greater control over
the container creation and selection
process is desired, that one can
simply register one's own
implementation of the
IHostContainerSelector [1] as a
service, and then when the ECF RSA
impl exportService call is made then
the customized host container
selector will be called to select
(and optionally create/configure)
the container(s) to actually export
the service. The default
implementation of
IHostContainerSelector (class
HostContainerSelector[2]) is where
the host/server container is
actually created...and where the
containerFactoryArgs are actually
used/passed into the container
creation.
My intention is to add to the RSA
documentation to describe (with
perhaps an example if I can manage
the time) of creating/using a custom
IHostContainerSelector (and
IConsumerContainerSelector)...to
show how this can easily be
done...and allow the container
creation, configuration to be
customized as desired.
and how a
client makes the discovery of
services in an specific
computer. For example, code
about list all the remote
services in a
different machines than
localhost could be interesting
(without using
zeroconf, I mean).
This is as easy as adding an
EndpointListener...with a scope that
restricts the notification to the
set of hosts that match...e.g. to
frameworks that do *not* have the
same framework uuid as
localhost...e.g.
I would like to have other/more
examples of doing this (creating
EndpointListeners with various kinds
of scopes), and I've been
contemplating an Eclipse view that
shows all discovered
EndpointDescriptions (with ability
to easily set scope). This would be
easy to do...but alas no time.
I
appreciate all the work of the
ECF developers are doing, given
that
they do in their spare time :)
Yes...see 'alas no time' comment
above :). If you can find
non-spare time support, please
consider making it known/available.
When replying, please edit
your Subject line so it is
more specific
than "Re: Contents of
ecf-dev digest..."
Today's Topics:
1. Getting started with
ECF (ronen hamias)
2. Re: Getting started
with ECF (Pierre Henry
Perret)
3. Re: Getting started
with ECF (Scott Lewis)
4. adding to
RemoteServiceAdmin wiki docs
(Scott Lewis)
5. Re: Getting started
with ECF (ronen hamias)
6. Re: Getting started
with ECF (Markus Alexander
Kuppe)
i am having trouble to get
started with ecf in terms of
setting my
development envitoment
correctly
iso far i had alot of
problems and exceptions
thrown when starting the
platform
my guess i am missing
dependencies or i didnt
downlod the correct versions
for:
eclipse
OSGi
ECF
my goal is to be able to
learn ECF capabilities and
in the future even
contribute to the project
what is the correct
profile/pre requisits for
testing ECF?
what is the correct
profile/pre requisits for
developing ECF?
is there any step by step
guide somewhere?
i am only getting started so
please bare with me...
Message: 2
Date: Thu, 31 Mar 2011
20:42:24 +0200
From: Pierre Henry
Perret<phperret@xxxxxxxxx>
To: "Eclipse Communication
Framework (ECF) developer
mailing list."
<ecf-dev@xxxxxxxxxxx>
Subject: Re: [ecf-dev]
Getting started with ECF
Message-ID:
<AANLkTimtoq56bg71Yzt=+bjKLufbu6Y1yOyZvfH5BgSv@xxxxxxxxxxxxxx>
Content-Type: text/plain;
charset="iso-8859-1"
Hi Ronen,
We have documentation for
starter contributor/user on
installing the ECF sdk
at [0].
Also, I think you 'll need
this at [1] also, which docs
how to start rs use
with ECF implementation.
With that doc and... some
resilience you'll get it!
i am having trouble to get
started with ecf in terms
of setting my
development envitoment
correctly
iso far i had alot of
problems and exceptions
thrown when starting the
platform
my guess i am missing
dependencies or i didnt
downlod the correct
versions
for:
eclipse
OSGi
ECF
my goal is to be able to
learn ECF capabilities and
in the future even
contribute to the project
what is the correct
profile/pre requisits for
testing ECF?
what is the correct
profile/pre requisits for
developing ECF?
is there any step by step
guide somewhere?
i am only getting started
so please bare with me...
Hi
all,
i am having trouble to get
started with ecf in terms
of setting my
development envitoment
correctly
iso far i had alot of
problems and exceptions
thrown when starting the
platform
my guess i am missing
dependencies or i didnt
downlod the correct
versions for:
eclipse
OSGi
ECF
my goal is to be able to
learn ECF capabilities and
in the future even
contribute to the project
what is the correct
profile/pre requisits for
testing ECF?
The ECF download page [1]
indicates that ECF 3.5
requires Eclipse Helios
SDK (3.6.X) or Eclipse
Indigo SDK (3.7.X). You
can get Eclipse Helios
or Eclipse Indigo here [2].
what
is the correct profile/pre
requisits for developing
ECF?
Same as above...i.e. Eclipse
Helios or Eclipse
Indigo....the SDK of
whatever version is
best...because it includes
most of the relevant
tooling, plus the
Eclipse/Equinox source code
(which can be useful).
In addition, since ECF now
uses git for our repository
[5], it's
necessary to use *some* git
client...to retrieve and
possibly change/add
to the latest ECF source.
The eGit client is popular
(because it runs
in Eclipse) [6], but since
it is not included in the
Eclipse SDK you
need to install it into
Eclipse SDK yourself. See
[6] for the
instructions for
installing/using eGit.
You can also use other git
clients if you wish (e.g.
git command line
clients, etc)...but of
course if you do so you have
to keep your local
Eclipse workspace in sync
with the local repo
manually.
is
there any step by step
guide somewhere?
No...not one that includes
installing Eclipse, eGit,
etc. If you want
to produce one...once you've
identified the steps that
will help
you...that would be a great
contribution to ECF (i.e. by
creating/adding
a page to the ECF wiki [3]).
However....we do now have
several pages describing the
download/install/examples
app usage for ECF's impl of
OSGi remote
services (which is one part
of ECF...not all of it, but
one significant
part). Those docs are here
[4] (as indicated by
Pierre's recent email
also).
As of ECF 3.5, much of ECF
can/could run on Felix
(another OSGi
framework impl), rather than
only Equinox (which is an
the OSGi
framework impl that comes
*with* Eclipse). Actually,
I believe ECF
remote services development
can/could probably be done
by other
IDEs/tooling (e.g.
Idea...and/or Netbeans), but
I haven't even tried
this yet, so I can't explain
the process for doing so.
Message: 4
Date: Thu, 31 Mar 2011
16:35:51 -0700
From: Scott Lewis<slewis@xxxxxxxxxxxxx>
To: "Eclipse Communication
Framework (ECF) developer
mailing list."
<ecf-dev@xxxxxxxxxxx>
Subject: [ecf-dev] adding to
RemoteServiceAdmin wiki docs
Message-ID:<4D950FD7.5050300@xxxxxxxxxxxxx>
Content-Type: text/plain;
charset=ISO-8859-1;
format=flowed
Hi Folks,
I've been adding to the
wiki-based docs for the ECF
impl of the OSGi
Remote Service Admin (RSA)
here [1]. The idea is to
allow people to use
the major features of the
ECF RSA impl without having
to consult with
the OSGI specification (chap
122 of enterprise spec)...at
least for
everything :).
It's not completed yet, but
I would appreciate some
review, as well as
comments or suggestions...or
further contributions,
examples, etc.
Hi all,
i am having trouble to
get started with ecf in
terms of setting my
development envitoment
correctly
iso far i had alot of
problems and exceptions
thrown when starting the
platform
my guess i am missing
dependencies or i didnt
downlod the correct
versions
for:
eclipse
OSGi
ECF
my goal is to be able to
learn ECF capabilities
and in the future even
contribute to the
project
what is the correct
profile/pre requisits
for testing ECF?
The ECF download page [1]
indicates that ECF 3.5
requires Eclipse Helios
SDK (3.6.X) or Eclipse
Indigo SDK (3.7.X). You
can get Eclipse Helios or
Eclipse Indigo here [2].
what is the correct
profile/pre requisits for
developing ECF?
Same as above...i.e.
Eclipse Helios or Eclipse
Indigo....the SDK of
whatever version is
best...because it includes
most of the relevant
tooling,
plus the Eclipse/Equinox
source code (which can be
useful).
In addition, since ECF now
uses git for our
repository [5], it's
necessary
to use *some* git
client...to retrieve and
possibly change/add to the
latest
ECF source. The eGit
client is popular (because
it runs in Eclipse) [6],
but since it is not
included in the Eclipse
SDK you need to install it
into
Eclipse SDK yourself. See
[6] for the instructions
for installing/using
eGit.
You can also use other git
clients if you wish (e.g.
git command line
clients, etc)...but of
course if you do so you
have to keep your local
Eclipse workspace in sync
with the local repo
manually.
is there any step by step
guide somewhere?
No...not one that includes
installing Eclipse, eGit,
etc. If you want to
produce one...once you've
identified the steps that
will help you...that
would be a great
contribution to ECF (i.e.
by creating/adding a page
to the
ECF wiki [3]).
However....we do now have
several pages describing
the
download/install/examples
app usage for ECF's impl
of OSGi remote services
(which is one part of
ECF...not all of it, but
one significant part).
Those
docs are here [4] (as
indicated by Pierre's
recent email also).
As of ECF 3.5, much of ECF
can/could run on Felix
(another OSGi framework
impl), rather than only
Equinox (which is an the
OSGi framework impl that
comes *with* Eclipse).
Actually, I believe ECF
remote services
development
can/could probably be done
by other IDEs/tooling
(e.g. Idea...and/or
Netbeans), but I haven't
even tried this yet, so I
can't explain the process
for doing so.