[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipse-incubator-e4-dev] e4 and Java5 (was: Asynchronous Infrastructure)
|
Hi,
There are constructs in Java 5 you can't compile to Java 1.4 like e.g.
enums whereas e.g. generics can get compiled to Java1.4 without problems
and javac itself has an unsupported feature to make this work [1].
Tom
[1]http://dev.eclipse.org/newslists/news.eclipse.tools.jdt/msg20212.html
Oberhuber, Martin schrieb:
> Hi all,
>
> I agree that Generics are a very big advantage of Java5, and
> a decision in favor or against generics should likely be made
> early, before much new code / API is created for e4. It's likely
> that the decision needs to be considered separately for various
> layers (Equinox/Runtime vs. RCP vs. IDE, particularly).
>
> Retroweaver [1] <http://retroweaver.sourceforge.net/> supports compiling
> Java5 sources into Java4
> compatible binaries today. I'm not sure how good it is, and
> I'd assume that some strategic member(s) would rather
> beef up Eclipse's own ecj rather than relying on a SF project
> it if we wanted to cross-compile.
>
> That being said, is anybody from JDT core listening here?
> Is it technically feasible to compile 1.5 sources into 1.4
> bytecode with ecj?
>
> I'm wondering how we can best move this important discussion
> forward without burning everybody's time in flame wars.
> I'd love to hear McQ's opinion on the matters.
>
> [1] http://retroweaver.sourceforge.net/
>
> Cheers,
> --
> *Martin Oberhuber*, Senior Member of Technical Staff, *Wind River*
> Target Management Project Lead, DSDP PMC Member
> http://www.eclipse.org/dsdp/tm
>
>
>
> ------------------------------------------------------------------------
> *From:* eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx
> [mailto:eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx] *On Behalf Of
> *Ed Merks
> *Sent:* Tuesday, November 04, 2008 8:07 PM
> *To:* E4 developer list
> *Subject:* Re: [eclipse-incubator-e4-dev] Asynchronous
> Infrastructure (was:EFS, ECF and asynchronous)
>
> Guys,
>
> Comments below.
>
>
> Schaefer, Doug wrote:
>> There's a big difference between "under consideration" and what
>> will actually get done in e4. Even this discussion on
>> asynchronousity, while interesting and important, isn't likely to
>> lead to real code change, IMHO.
> There's a discussion killer. :-P
>>
>> And to compare this Java 4 versus 5 war
> War?
>> to something we in the embedded space are also familiar with, how
>> many APIs are C++ only and aren't based on a C layer. Java 5 will
>> become ubuquitous when C++ does, which is pretty much never.
> I can't comment on the C++ verses C thing , other than to mention
> that Java killed the C++ IDE I was working on, but I see no reason
> why a Java 5.0 version of the micro libraries for embedded devices
> are an impossible thing. Talking to the compiler guys, I'm lead to
> believe it's relatively trivial to cross compile Java 5.0 to 1.4
> anyway; it's just not allowed by the language. Goodness knows what
> Sun is thinking...
>>
>> Sorry, cranky today :(
> I've got a pain in the neck myself...
>>
>> Doug.
>>
>> ------------------------------------------------------------------------
>> *From:* eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx
>> [mailto:eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx] *On
>> Behalf Of *Pawel Piech
>> *Sent:* Tuesday, November 04, 2008 1:43 PM
>> *To:* E4 developer list
>> *Subject:* Re: [eclipse-incubator-e4-dev] Asynchronous
>> Infrastructure (was:EFS, ECF and asynchronous)
>>
>> I hate to say it, but perhaps it's time to admit that Eclipse
>> community is too large and too divergent to be served by a
>> single platform.
> Blasphemer! :-P
>>
>> IMO, this is already happening and the e4 effort is in fact a
>> fork.
> There are folks working very hard to ensure it's not a fork. I.e.,
> to ensure that your 3.x plugins will run on 4.0...
>>
>> With the radical changes under consideration here, it's safe
>> to say that 3.x is going to be around for a long long time
> I'm not sure the radical changes are the cause, but it seems a
> fairly safe bet nevertheless.
>>
>> and e4 is going to be competing for its users and developers.
> It will be hard to split the efforts...
>>
>> Since e4's main selling point is innovation and lighter
>> legacy load, the decision on using Java 5 seems obvious to me.
> Yes, I made that point at the summit. We can't make a legitimate
> claim to achieving a progressive modern API while rejecting the
> modernization of the language itself. Raw types just appear
> offensive when you've spent a great deal of time eliminating every
> vestige of them as was the case for EMF...
>>
>>
>> But to bring this back to asynchronous programming.
> Nothing like an interesting digression into the parallel between C++
> and C compared to Java 5.0 and Java 1.4 to keep us entertained. :-)
>>
>> The concurrency package can be and has been cloned for older
>> jvms, but I think generics are just as important.
> I can't help but bemoan how sad it is that there isn't a micro
> version for 5.0! That pain in my neck gets worse just thinking
> about it. I hope it stays at neck level...
>>
>> Being able to parametrize the return types in a future,
>> callable, and a callback interface makes a huge difference in
>> making the code using them more readable and less error prone.
> Some will argue it's just sugar, but the point is, that there are
> those in the community of consider this sugar to make a huge
> difference, so therefore it makes a huge difference.
>>
>> Still, using Java 5 is not an all or nothing decision, so I
>> don't think it's necessary to hold up development because
>> there's no consensus on it.
> For the e4 UI work we're just starting to use and 5.0 and consider
> things like cross compiling to 1.4 and back porting portions of
> libraries to be a potential solution. It continues to be a
> festering sore point though...
>>
>>
>> -Pawel
>>
>> Ed Merks wrote:
>>> Pawel,
>>>
>>> Lack of progress on the Java 5 front is primarily an issue
>>> with Sun's failure to keep the micro versions moving forward;
>>> perhaps that's more my opinion than a fact. I believe that a
>>> 5.0 JVM is not significantly bloated compared to 1.4 and that
>>> migrating the micro libraries to 5.0 would not have a
>>> bloating impact on those either. It's pretty frustrating to
>>> see stagnation of Java in one segment of the community.
>>> While some in the community focus on what will be in Java 7.0
>>> others are stuck feeling like they will never be able to move
>>> beyond 1.4. >From an E4 perspective of wanting to keep
>>> things lively, vibrant, modern, and forward-looking, it's
>>> particularly frustrating. This case here is just a micro
>>> example of it.
>>>
>>>
>>> Pawel Piech wrote:
>>>> Hi John,
>>>> I didn't mean to sound so categorical, so I apologize for
>>>> that. As you mentioned in the bug it's likely parts or all
>>>> of platform will never move to Java 5, so preconditioning
>>>> improvements in Eclipse APIs on it is a bad idea. But
>>>> whatever new APIs are created in this area, it would be
>>>> ideal if they were designed in such a way that projects
>>>> using Java 5 could still leverage the concurrent package and
>>>> generics without having compatibility issues with rest of
>>>> platform.
>>>>
>>>> Cheers,
>>>> Pawel
>>>>
>>>> John Arthorne wrote:
>>>>>
>>>>> I didn't make the connection between the CBFuture class
>>>>> Martin proposed and Java 5's Future, so I didn't mean to
>>>>> compare the job API to the java.util.concurrent API. I
>>>>> agree that java.util.concurrent does a very good job of
>>>>> separating concerns and providing reusable
>>>>> interfaces/classes that we could incorporate into the Job
>>>>> API and other Eclipse APIs. I know you're already aware of
>>>>> it Pawel, but for others who are interested there is an
>>>>> existing bug report about making use of
>>>>> java.util.concurrent API in the jobs API:
>>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=178278. I've
>>>>> referenced this thread in the bug so that the information
>>>>> is available when the day comes that we can use Java 5 there.
>>>>>
>>>>> John
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *Pawel Piech <pawel.piech@xxxxxxxxxxxxx>*
>>>>> Sent by: eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx
>>>>>
>>>>> 10/31/2008 12:53 PM
>>>>> Please respond to
>>>>> E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>
>>>>>
>>>>>
>>>>>
>>>>> To
>>>>> E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>
>>>>> cc
>>>>>
>>>>> Subject
>>>>> Re: [eclipse-incubator-e4-dev] Asynchronous Infrastructure
>>>>> (was: EFS, ECF and asynchronous)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Hi John,
>>>>>
>>>>> I don't think it's fair to compare just the *Future*
>>>>> interface to the entire jobs API. Future is a single
>>>>> purpose interface, used to synchronously access a result of
>>>>> an asynchronous operation. Jobs API includes, in some
>>>>> form, additional features found in the concurrent package:
>>>>> *Executor* - In the concurrent package this is another
>>>>> single-purpose interface which abstracts the task of
>>>>> running an operation using some facility. In jobs API,
>>>>> this facility is implemented as a thread pool, or a UI
>>>>> dispatch loop when using UIJob.
>>>>> *Callable* - It's basically a runnable with a return value.
>>>>> In jobs API, this is the Job.run():IStatus method.
>>>>>
>>>>> IMO, the killer feature of the concurrent package is that
>>>>> you can pick and choose the elements to use as is,
>>>>> re-implement other elements, and invent new elements as
>>>>> needed. With the jobs API the choice is either all or
>>>>> nothing. Looking forward in e4, or even 3.x, I hope that
>>>>> Eclipse can support the complete java concurrent package as
>>>>> a layer either above or below the jobs API.
>>>>> If it is above, then all that would be needed is an
>>>>> Executor implementation which is a proxy to the current
>>>>> jobs API, which would simply execute Runnables and
>>>>> Callables using Jobs. If it is below, which I think is the
>>>>> more work/more gain option, then the jobs API becomes a
>>>>> collection of components:
>>>>> - JobManager becomes an Executor which accepts any Runnable
>>>>> or Callable, where progress monitor and a scheduling rule
>>>>> are optional.
>>>>> - A Job becomes just an implementation of Callable<IStatus>.
>>>>> - UIJob is replaced by a separate implementation of an
>>>>> Executor.
>>>>> - etc.
>>>>>
>>>>> Supporting the java concurrent package would only make the
>>>>> current jobs api functionality more convenient and
>>>>> extensible. The larger goal for e4 should be to make
>>>>> asynchronous programming in Eclipse easier and safer. To
>>>>> that end we'd need additional standard APIs for things like
>>>>> callbacks and realms, and more importantly we'd need good
>>>>> tooling for validating and debugging asynchronous systems.
>>>>>
>>>>> Cheers,
>>>>> Pawel
>>>>>
>>>>>
>>>>>
>>>>> John Arthorne wrote:
>>>>>
>>>>> There doesn't seem to be much difference between the future
>>>>> construct you describe and the Job API. You can attach
>>>>> listeners to jobs which seems to be the same as your
>>>>> Callback mechanism. Future.waitFor() is the same as
>>>>> Job.join(), and Future.get() is similar to Job.getResult().
>>>>> I did actually have futures in mind when designing the jobs
>>>>> API, with the job's "result" being the payload returned
>>>>> from the asynchronous operation. I initially made this
>>>>> result of type Object so clients could pass back whatever
>>>>> return value they wanted. I then perhaps mistakenly
>>>>> switched the result type to IStatus, thinking that clients
>>>>> could return sub-types of Status containing any result
>>>>> object they wanted. This is why I specified almost nothing
>>>>> for the return value of Job#run and Job#getResult, leaving
>>>>> it as a mechanism for clients to communicate whatever they
>>>>> want back to the caller. In reality it didn't end up being
>>>>> used this way, because people fell into the common coding
>>>>> patterns around IStatus and just returned the usual
>>>>> OK/ERROR results.
>>>>>
>>>>> So, I'm wondering if there's something fundamental missing
>>>>> from Jobs that makes these asynchronous coding patterns
>>>>> difficult, and is there some incremental improvement we can
>>>>> make to Jobs to make it as expressive and useful as your
>>>>> Future construct? If not, the org.eclipse.core.jobs bundle
>>>>> could still perhaps be a home for such an API, since it
>>>>> obviously needs a backing thread pool implementation with
>>>>> support for progress monitors, etc.
>>>>>
>>>>> John
>>>>>
>>>>>
>>>>> Martin Oberhuber wrote on 10/30/2008 04:47:02 PM:
>>>>>
>>>>> > Hi Scott, Pawel and all,
>>>>> >
>>>>> > it looks like this Thread has long left the resources/EFS
>>>>> > aspect of things, and moved to a more general discussion
>>>>> > about infrastructure for asynchronous coding patterns.
>>>>> >
>>>>> > I'd thus like to make the discussion more general. We
>>>>> > seem to agree that there needs to be some base infrastructure
>>>>> > for asynchronous coding patterns, and (perhaps even more
>>>>> > important) API Documentation for how to properly use that
>>>>> > infrastructure. If this base infrastructure is unified,
>>>>> > we all win.
>>>>> >
>>>>> > Thanks Scott for volunteering to offer your expertise
>>>>> > as well as contributions. What could be the next steps
>>>>> > towards making it happen? I'm assuming that the base
>>>>> > infrastructure should be in Equinox. Is anyone from
>>>>> > the Equinox team listening and could guide through
>>>>> > their process for contribution?
>>>>> >
>>>>> > Assuming that Equinox is right, we should perhaps first
>>>>> > find a proper place for this discussion; then argue
>>>>> > about good infrastructure/patterns; these need to be
>>>>> > backed by some actual usage somewhere. Right now, it
>>>>> > looks like what we'll want is at least
>>>>> >
>>>>> > Future (aka RequestMonitor, AsyncExecutionResult)
>>>>> > Callback (aka Listener)
>>>>> > Status/MultiStatus (async variant)
>>>>> > Executor/Queue/Realm (for posting async Runnables/Callbacks
>>>>> > in a well-known Thread)
>>>>> >
>>>>> > along with some well-documented Exception types
>>>>> (cancellation,
>>>>> > timeout) as well as Threading paradigm.
>>>>> >
>>>>> > How to proceed from here? Potential clients of async
>>>>> > certainly include DD/DSF and ECF, perhaps Resources/EFS;
>>>>> > who else is interested in infrastructure for async?
>>>>> >
>>>>> > Cheers,
>>>>> > --
>>>>> > Martin Oberhuber, Senior Member of Technical Staff, Wind
>>>>> River
>>>>> > Target Management Project Lead, DSDP PMC Member
>>>>> > _http://www.eclipse.org/dsdp/tm_
>>>>> >
>>>>> >
>>>>> >
>>>>> > > -----Original Message-----
>>>>> > > From: _eclipse-incubator-e4-dev-bounces@eclipse.org_
>>>>> <mailto:eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx>
>>>>> > > [_mailto:eclipse-incubator-e4-dev-bounces@eclipse.org_] On
>>>>> > > Behalf Of Scott Lewis
>>>>> > > Sent: Wednesday, October 29, 2008 7:06 PM
>>>>> > > To: E4 developer list
>>>>> > > Subject: Re: [eclipse-incubator-e4-dev] [resources]
>>>>> EFS, ECF
>>>>> > > and asynchronous
>>>>> > >
>>>>> > > Hi Martin,
>>>>> > >
>>>>> > > Oberhuber, Martin wrote:
>>>>> > > > Hi Scott,
>>>>> > > >
>>>>> > > > to me, Futures and Listeners don't need to be a
>>>>> contradiction.
>>>>> > > >
>>>>> > >
>>>>> > > Before my further comments...I don't believe they are in
>>>>> > > conflict either
>>>>> > > (that is, both can be used in some cases as described
>>>>> by Martin). I
>>>>> > > guess I sort of presented them as exclusive, but I didn't
>>>>> > > really mean to
>>>>> > > have it be so.
>>>>> > >
>>>>> > > > What's more interesting to me, is how to deal with
>>>>> Progress.
>>>>> > > > When a Progress Monitor already exists for the
>>>>> client, then
>>>>> > > > using it makes a lot of sense even if the result is
>>>>> obtained
>>>>> > > > asynchronously:
>>>>> > > >
>>>>> > > > final CBFuture<IFileStore[]> childrenF =
>>>>> > > myFileStore.list(myProgress);
>>>>> > > > childrenF.chain(new Callback() {
>>>>> > > > public void onDone(IStatus result) {
>>>>> > > > if (result.isOK()) {
>>>>> > > > handleResult(childrenF.get());
>>>>> > > > }
>>>>> > > > };
>>>>> > > > });
>>>>> > > >
>>>>> > > > I'm using class "CBFuture" as an "enhanced Future"
>>>>> that allows
>>>>> > > > registering Callbacks. Using a Callback style of
>>>>> handling things,
>>>>> > > > or CBFuture.waitFor() remains up to the client. Note
>>>>> that I'm
>>>>> > > > using a "chain()" method to indicate that the
>>>>> Framework/Future could
>>>>> > > > allow chaining multiple callbacks such that one is
>>>>> exeucuted after
>>>>> > > > the other. Also note how the callback retrieves the
>>>>> result of
>>>>> > > > computation from the Future, and not from the
>>>>> callback itself.
>>>>> > > >
>>>>> > >
>>>>> > > I agree that the general issue of how to handle
>>>>> progress monitors is
>>>>> > > tricky. Although I accept your ideas above as a possible
>>>>> > > solution, I'm
>>>>> > > not sure whether this is the 'right' mechanism or not
>>>>> for 'remote
>>>>> > > progress monitoring'. I've been thinking about this
>>>>> for some
>>>>> > > time, but
>>>>> > > still don't feel like I have a good general solution
>>>>> for supporting
>>>>> > > IProgressMonitor for remote procedures.
>>>>> > >
>>>>> > > > The problems that I have seen with callbacks in our
>>>>> products
>>>>> > > > in the past are listed on
>>>>> > > >
>>>>> > >
>>>>> _http://wiki.eclipse.org/E4/Pervasive_Themes#Becoming_More_Asynchronous_
>>>>> > > >
>>>>> > > > * Much boilerplate code - Closures would be nice to
>>>>> avoid explosion
>>>>> > > > of anonymous inner classes, which could cause bloat
>>>>> > > >
>>>>> > > > * Need clarification on what thread and in what
>>>>> context the
>>>>> > > > callback will be called
>>>>> > > >
>>>>> > > > * When debugging, it is very hard to trace back the
>>>>> flow of
>>>>> > > > operation across multiple callback invocations. It
>>>>> can even
>>>>> > > > make debuging close to impossible unless some Tracing
>>>>> > > > functionality for the callbacks is built into the
>>>>> Framework
>>>>> > > > (we ended up doing this in our commercial product).
>>>>> > > >
>>>>> > > > * Exception handling needs to be clarified. Java6
>>>>> Future only
>>>>> > > > provides Future#isCanceled(), that's not enough
>>>>> since the
>>>>> > > > result of an operation might also be an exception. I'm
>>>>> > > > introducint "Istatus result" above but that's also not
>>>>> > > > optimal.
>>>>> > > >
>>>>> > >
>>>>> > > I agree these are other issues...thanks.
>>>>> > >
>>>>> > >
>>>>> > > > The synchronous variant needs more verbosity writing
>>>>> it than
>>>>> > > > one would expect, because cancellation and errors
>>>>> (exceptions)
>>>>> > > > need to be handled, wrapped and potentially
>>>>> re-wrapped with
>>>>> > > > Futures:
>>>>> > > >
>>>>> > > > final CBFuture<IFileStore[]> childrenF =
>>>>> > > myFileStore.list(myProgress);
>>>>> > > > try {
>>>>> > > > handleResult(childrenF.get());
>>>>> > > > } catch(CancellationException e) {
>>>>> > > > throw new OperationCancelledException(e);
>>>>> > > > } catch(ExecutionExeption e) {
>>>>> > > > throw new CoreException(new Status(/*.blabla*/));
>>>>> > > > }
>>>>> > > >
>>>>> > > > although that could perhaps be simplified if we
>>>>> declared some
>>>>> > > > Eclipse specific implementation of Future which
>>>>> throws the
>>>>> > > > kinds of Exceptions that we already know (like
>>>>> CoreException
>>>>> > > > embedding an Istatus) instead of the JRE's
>>>>> ExecutionException
>>>>> > > > that's really alien to our current code.
>>>>> > > >
>>>>> > >
>>>>> > > Yes, I agree that these are issues. I also agree that
>>>>> it would be
>>>>> > > useful to have Equinox-specific impls of Future (which
>>>>> is really what
>>>>> > > the IAsyncResult interface was meant to be and can/will
>>>>> > > change to be if
>>>>> > > desired). Further, I've recently also realized that there
>>>>> > > also should
>>>>> > > probably be something like remote impls of
>>>>> > > IStatus/MultiStatus, as I've
>>>>> > > been doing some remote mgmt interfaces (i.e. accessing
>>>>> and managing a
>>>>> > > remote processes' OSGi framework, p2, etc)...and it's
>>>>> clear
>>>>> > > to me that
>>>>> > > it is going to be very helpful to support the usage of
>>>>> > > IStatus/Multistatus as return values, as well as
>>>>> exceptions in remote
>>>>> > > service access. I agree that Future/IAsyncResult as
>>>>> well as
>>>>> > > IStatus/Multistatus and exception types should be widely
>>>>> > > available (i.e.
>>>>> > > in Equinox rather than redone/available in many
>>>>> locations above
>>>>> > > Equinox). We (ECF) are willing to contribute (and
>>>>> modify as desired)
>>>>> > > what we've done in this area (e.g. IAsyncResult+impl,
>>>>> > > RemoteStatus/RemoteMultiStatus, exception types) as
>>>>> desired.
>>>>> > >
>>>>> > > Scott
>>>>> > >
>>>>> > >
>>>>> > >
>>>>> > > > Cheers,
>>>>> > > > --
>>>>> > > > Martin Oberhuber, Senior Member of Technical Staff,
>>>>> Wind River
>>>>> > > > Target Management Project Lead, DSDP PMC Member
>>>>> > > > _http://www.eclipse.org/dsdp/tm_
>>>>> > > > _______________________________________________
>>>>> > > > eclipse-incubator-e4-dev mailing list
>>>>> > > > _eclipse-incubator-e4-dev@eclipse.org_
>>>>> <mailto:eclipse-incubator-e4-dev@xxxxxxxxxxx>
>>>>> > > >
>>>>> _https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev_
>>>>> > > >
>>>>> > >
>>>>> > > _______________________________________________
>>>>> > > eclipse-incubator-e4-dev mailing list
>>>>> > > _eclipse-incubator-e4-dev@eclipse.org_
>>>>> <mailto:eclipse-incubator-e4-dev@xxxxxxxxxxx>
>>>>> > >
>>>>> _https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev_
>>>>> > >
>>>>> > _______________________________________________
>>>>> > eclipse-incubator-e4-dev mailing list
>>>>> > _eclipse-incubator-e4-dev@eclipse.org_
>>>>> <mailto:eclipse-incubator-e4-dev@xxxxxxxxxxx>
>>>>> >
>>>>> _https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev_
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> eclipse-incubator-e4-dev mailing list
>>>>> _eclipse-incubator-e4-dev@eclipse.org_
>>>>> <mailto:eclipse-incubator-e4-dev@xxxxxxxxxxx>
>>>>> _https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev_
>>>>>
>>>>> _______________________________________________
>>>>> eclipse-incubator-e4-dev mailing list
>>>>> eclipse-incubator-e4-dev@xxxxxxxxxxx
>>>>> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> eclipse-incubator-e4-dev mailing list
>>>>> eclipse-incubator-e4-dev@xxxxxxxxxxx
>>>>> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
>>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> eclipse-incubator-e4-dev mailing list
>>>> eclipse-incubator-e4-dev@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
>>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> eclipse-incubator-e4-dev mailing list
>>> eclipse-incubator-e4-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
>>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> eclipse-incubator-e4-dev mailing list
>> eclipse-incubator-e4-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
>>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> eclipse-incubator-e4-dev mailing list
> eclipse-incubator-e4-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
--
B e s t S o l u t i o n . a t EDV Systemhaus GmbH
------------------------------------------------------------------------
tom schindl leiter softwareentwicklung/CSO
------------------------------------------------------------------------
eduard-bodem-gasse 8/3 A-6020 innsbruck phone ++43 512 935834