Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Today's Messages (on)  | Unanswered Messages (off)

Forum: scout
 Topic: [neon] How to specify different config.properties file when starting client
Re: [neon] How to specify different config.properties file when starting client [message #1752149 is a reply to message #1752060] Thu, 19 January 2017 09:26
Urs Beeli is currently offline Urs BeeliFriend
Messages: 522
Registered: October 2012
Location: Bern, Switzerland
Senior Member
That works perfectly, thank you!
 Topic: [neon] Replacing proxied beans and service tunnel in Stubbed Client
Re: [neon] Replacing proxied beans and service tunnel in Stubbed Client [message #1752130 is a reply to message #1752067] Thu, 19 January 2017 07:14
Urs Beeli is currently offline Urs BeeliFriend
Messages: 522
Registered: October 2012
Location: Bern, Switzerland
Senior Member
Jérémie

Thank you for your answers, I'll give this a try. As to your questions:
Quote:
I do not understand why you need to replace the tunnel proxy implementation...
Neither do I and the person who wrote the code is no longer with us. Maybe it was needed for the client to work without a server in Mars despite the ServiceStubs being registered...
Quote:
Why are your stubbed implementations not in a separate project (maven artifact) that you include or not on the classpath when you start your application?
For historical reasons, because that's the code base used in Mars Smile I could probably change that if needed.

What priority do the scout generated service proxies have? Somewhere in the range of 4001 to 5999 that is mentioned in the technical guide in the bean manager chapter? So if I used withOrder(2000) my stubs should get higher priority, right?
Re: [neon] Replacing proxied beans and service tunnel in Stubbed Client [message #1752133 is a reply to message #1752130] Thu, 19 January 2017 07:38
Jeremie Bresson is currently offline Jeremie BressonFriend
Messages: 1206
Registered: October 2011
Senior Member
Urs Beeli wrote on Thu, 19 January 2017 08:14
What priority do the scout generated service proxies have? Somewhere in the range of 4001 to 5999 that is mentioned in the technical guide in the bean manager chapter? So if I used withOrder(2000) my stubs should get higher priority, right?


I had a look at: org.eclipse.scout.rt.shared.servicetunnel.RegisterTunnelToServerPlatformListener.registerTunnelToServerProxy(IBeanManager, Class<?>)

In the method RegisterTunnelToServerPlatformListener.createBeanMetaData(Class<?>) no order is defined, so I guess that the proxy are registered with the default value 5000.

You can give 2000 a try. For debugging purpose you can use BEANS.all(IMyService.class) and verify that you have the 2 implementations you except (your stub first and the proxy in the second position).
Re: [neon] Replacing proxied beans and service tunnel in Stubbed Client [message #1752155 is a reply to message #1752130] Thu, 19 January 2017 09:50
Urs Beeli is currently offline Urs BeeliFriend
Messages: 522
Registered: October 2012
Location: Bern, Switzerland
Senior Member
OK, I've done some experimentation and there still are some issues.

ServiceTunnel
I *do* need to replace the service tunnel with a dummy implementation that has isActive() return false. If I don't do this, the ClientNotification mechanism tries to connect to the server which is not running and when I try to log in, the same happens and the login fails.

I am doing this during startup in the PlatformListener during the BeanManagerPrepared phase. I noticed that my dummy service tunnel *cannot* be an inner class, otherwise the bean manager cannot instantiate it.

public class MyPlattformListener implements IPlattformListener {
  @Override
  public void stateChanged(PlatformEvent event) {
    if (event.getState() == State.BeanManagerPrepared) {
      System.out.println("Registering stubbed service tunnel");
      if (isClientOnlyMode()) {
        BeanMetaData beanData = new BeanMetaData(StubbedServiceTunnel.class).withApplicationScoped(true).withOrder(500);
        BEANS.getBeanManager().registerBean(beanData);
      }
      System.out.println("Stubbed service tunnel registered");
    }
  }
}


This let's me start the ui server without any error messages and the login mechanism works. However, for some strange reason this only works when launching the ui server using Tomcat (in that case I see the two sysouts telling me about registration of the stubbed tunnel *and* I also see the sysout I have placed in the constructor of the stubbed service tunnel). When launching my ui server using Jetyy I see the two sysouts telling me that the stubbed service tunnel was registered but I never see the constructor-sysout of the stubbed tunnel and then the application throws exceptions about "connection refused" both in the client notification mechanism as well as when trying to log in. [see quote at the very bottom]

--> is there any reason why the jetty based approach would not instantiate the stubbed tunnel that I am missing?

Replacing the services
As with the replacement of the service tunnel, I had to move the stubbing point from MyClientSession.execLoadSession() to the PlattformListener (if I didn't do that, BEANS.all() returned a list containing both the stubbed service *and* the proxy, BEANS.get() returned the proxy).
  private void registerStubbedServices() throws ProcessingException {
    Object[] services = StubbedServiceRegistry.getStubbedServices();
    for (Object service : services) {
      BeanMetaData beanData = new BeanMetaData(service.getClass()).withApplicationScoped(true).withOrder(500).withReplace(true);
      BEANS.getBeanManager().registerBean(beanData);
      }
  }


So, for the time being it looks like the replacement works using tomcat but not jetty....



[quote name="Output when run in Jetty"][2017-01-19 10:37:03,758] [Thread-9] INFO org.eclipse.scout.rt.platform.inventory.ClassInventory <clinit> - Finished preparation of jandex class inventory in 1632.409027 ms
Registering stubbed service tunnel
Stubbed service tunnel registered
[2017-01-19 10:37:04,177] [Thread-9] INFO org.eclipse.scout.rt.platform.job.internal.DevelopmentThreadNameDecorator stateChanged - +++ Development thread name decoration
[2017-01-19 10:37:04,183] [Thread-9] INFO org.eclipse.scout.rt.platform.logger.LoggerPlatformListener registerLoggerSupportBean - registered logger support [org.eclipse.scout.rt.platform.logger.Log4jLoggerSupport]
[2017-01-19 10:37:04,206] [Thread-9] INFO org.eclipse.scout.rt.shared.services.common.code.CodeTypeRegistrator stateChanged - 29 code type classes registered.
[2017-01-19 10:37:04,243] [Thread-9] INFO org.eclipse.scout.rt.shared.servicetunnel.RegisterTunnelToServerPlatformListener registerTunnelToServerProxies - Tunnel to server proxies registered.
[2017-01-19 10:37:04,248] [Thread-9] INFO org.eclipse.scout.rt.shared.servicetunnel.http.MultiSessionCookieStoreInstaller install - Successfully installed java.net.CookieManager@43badb7c (Cookie store: org.eclipse.scout.rt.shared.servicetunnel.http.MultiSessionCookieStore@38a138e3)
[2017-01-19 10:37:04,348] [main] INFO org.eclipse.jetty.server.handler.ContextHandler doStart - Started o.e.s.d.j.P_WebAppContext@6500df86{/fos,file:/D:/dev/workspaces/cisi-neon/fos.scout.ui.html.dev/src/main/webapp/,AVAILABLE}
[2017-01-19 10:37:04,417] [main] INFO org.eclipse.jetty.server.ServerConnector doStart - Started ServerConnector@4abdb505{HTTP/1.1}{0.0.0.0:8083}
[2017-01-19 10:37:04,417] [main] INFO org.eclipse.jetty.server.Server doStart - Started @3179ms
[2017-01-19 10:37:04,423] [main] INFO org.eclipse.scout.dev.jetty.JettyServer start - Server ready. To run the application, open one of the following addresses in a web browser:
---------------------------------------------------------------------
http://localhost:8083/fos
http://k18270:8083/fos
http://192.168.56.1:8083/fos
---------------------------------------------------------------------
To shut the server down, type "shutdown" in the console.

[2017-01-19 10:37:05,341] [scout-thread-2 ClientNotificationPoller] ERROR org.eclipse.scout.rt.client.clientnotification.ClientNotificationPoller run - Error receiving client notifications
org.eclipse.scout.rt.platform.exception.PlatformException: Connection refused: connect [translator=org.eclipse.scout.rt.platform.exception.DefaultRuntimeExceptionTranslator, user=notification-authenticator, calling-thread=scout-thread-2 ClientNotificationPoller, job=Tunneling service request [seq=1, submitter=ClientNotificationPoller]]
at org.eclipse.scout.rt.platform.exception.DefaultRuntimeExceptionTranslator.translateInternal(DefaultRuntimeExceptionTranslator.java:54)
at org.eclipse.scout.rt.platform.exception.DefaultRuntimeExceptionTranslator.translate(DefaultRuntimeExceptionTranslator.java:37)
at org.eclipse.scout.rt.platform.exception.DefaultRuntimeExceptionTranslator.translate(DefaultRuntimeExceptionTranslator.java:1)
at org.eclipse.scout.rt.platform.job.internal.JobExceptionTranslator.translateExecutionException(JobExceptionTranslator.java:63)
at org.eclipse.scout.rt.platform.job.internal.JobFutureTask.awaitDoneAndGet(JobFutureTask.java:392)
at org.eclipse.scout.rt.platform.job.internal.JobFutureTask.awaitDoneAndGet(JobFutureTask.java:381)
at org.eclipse.scout.rt.shared.servicetunnel.http.HttpServiceTunnel.tunnel(HttpServiceTunnel.java:230)
at org.eclipse.scout.rt.shared.servicetunnel.AbstractServiceTunnel.invokeService(AbstractServiceTunnel.java:55)
at org.eclipse.scout.rt.shared.servicetunnel.AbstractServiceTunnel.invokeService(AbstractServiceTunnel.java:44)
at org.eclipse.scout.rt.shared.servicetunnel.http.HttpServiceTunnel.invokeService(HttpServiceTunnel.java:191)
at org.eclipse.scout.rt.shared.servicetunnel.ServiceTunnelProxyProducer.invoke(ServiceTunnelProxyProducer.java:43)
at org.eclipse.scout.rt.platform.interceptor.DecoratingProxy.invokeImpl(DecoratingProxy.java:134)
at org.eclipse.scout.rt.platform.interceptor.DecoratingProxy$P_InvocationHandler.invoke(DecoratingProxy.java:172)
at com.sun.proxy.$Proxy18.getNotifications(Unknown Source)
at org.eclipse.scout.rt.client.clientnotification.ClientNotificationPoller$P_NotificationPoller.run(ClientNotificationPoller.java:84)
at org.eclipse.scout.rt.platform.util.concurrent.Callables$1.call(Callables.java:37)
at org.eclipse.scout.rt.platform.util.concurrent.Callables$1.call(Callables.java:1)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:185)
at org.eclipse.scout.rt.platform.job.internal.ExceptionProcessor.intercept(ExceptionProcessor.java:41)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:180)
at org.eclipse.scout.rt.platform.context.RunContextRunner$1.call(RunContextRunner.java:42)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:185)
at org.eclipse.scout.rt.platform.security.SubjectProcessor$1.run(SubjectProcessor.java:47)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.eclipse.scout.rt.platform.security.SubjectProcessor.intercept(SubjectProcessor.java:43)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:180)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain.call(CallableChain.java:135)
at org.eclipse.scout.rt.platform.context.RunContext.call(RunContext.java:121)
at org.eclipse.scout.rt.platform.context.RunContextRunner.intercept(RunContextRunner.java:38)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:180)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain.call(CallableChain.java:135)
at org.eclipse.scout.rt.platform.job.internal.JobFutureTask$1.call(JobFutureTask.java:100)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.eclipse.scout.rt.platform.job.internal.JobFutureTask.run(JobFutureTask.java:160)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.eclipse.scout.rt.platform.job.internal.NamedThreadFactory$1.run(NamedThreadFactory.java:54)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1168)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:932)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257)
at org.eclipse.scout.rt.shared.servicetunnel.http.HttpServiceTunnel.createURLConnection(HttpServiceTunnel.java:114)
at org.eclipse.scout.rt.shared.servicetunnel.http.RemoteServiceInvocationCallable.call(RemoteServiceInvocationCallable.java:73)
at org.eclipse.scout.rt.shared.servicetunnel.http.RemoteServiceInvocationCallable.call(RemoteServiceInvocationCallable.java:1)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:185)
at org.eclipse.scout.rt.platform.context.RunContextRunner$1.call(RunContextRunner.java:42)
at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:185)
... 12 more
[/quote]

[Updated on: Thu, 19 January 2017 09:53]

Report message to a moderator

 Topic: [neon] Compilation fails with "cannot find symbol" using javac
[neon] Compilation fails with "cannot find symbol" using javac [message #1752140] Thu, 19 January 2017 08:27
Korhan Gülseven is currently offline Korhan GülsevenFriend
Messages: 2
Registered: December 2016
Junior Member
I've got a problem compiling our Neon project using maven. The compilation fails with "cannot find symbol" pointing to inner classes on scout forms. Inside the import block, moving all import statements containing the inner classes down solves the problem.

Using the Eclipse Compiler (IDE and maven-plugin) everything works fine.

I guess this is the same issue as described here stackoverflow.com/questions/34273176/maven-compilation-fails-with-cannot-find-symbol-while-with-eclipse-it-compile

Do I need to use the Eclipse compiler if I don't want to make assumptions regarding the order of the import statements?

JDK 1.7.0_80-b15 on Win7
Neon 6.0.100.RC4
Re: [neon] Compilation fails with "cannot find symbol" using javac [message #1752152 is a reply to message #1752140] Thu, 19 January 2017 09:46
Ivan Motsch is currently offline Ivan MotschFriend
Messages: 122
Registered: March 2010
Senior Member
With java 7 and 8 it should be ecl.
Java 9 planned to solve this. But we did not yet verify.
Re: [neon] Compilation fails with "cannot find symbol" using javac [message #1752157 is a reply to message #1752152] Thu, 19 January 2017 09:57
Korhan Gülseven is currently offline Korhan GülsevenFriend
Messages: 2
Registered: December 2016
Junior Member
Thank you. Just to make sure: I guess you meant ECJ?

 Topic: [neon] double menus mobile
[neon] double menus mobile [message #1752188] Thu, 19 January 2017 14:50
Andreas Ottiger is currently offline Andreas OttigerFriend
Messages: 4
Registered: April 2010
Junior Member
I have a TablePage "BTablePage" with a "normal" edit menu (only for TableMenuType.SingleSelection). And as a child page there is a BDetailNodePage. As I use the BDetailNodePage in other places too, there is also an edit menu with TreeMenuType.SingleSelection as MenuType.

To prevent to get the edit menu twice when opening the BDetailNodePage below the BTablePage I have overridden computeParentTablePageMenus:

  @Override
  public List<IMenu> computeParentTablePageMenus(IPageWithTable<?> parentTablePage) {
    return CollectionUtility.emptyArrayList();
  }


This works fine on the desktop version. When opening the application on mobile and selecting a row entry the edit menu is still displayed twice. I guess this is because the displayed contents are partly from the TablePage (column values) and NodePage (children).

Where is my mistake? Or what can I do to just get a single menu in mobile as well?

[Updated on: Thu, 19 January 2017 14:51]

Report message to a moderator

Re: [neon] double menus mobile [message #1752190 is a reply to message #1752188] Thu, 19 January 2017 15:30
Ivan Motsch is currently offline Ivan MotschFriend
Messages: 122
Registered: March 2010
Senior Member
I would do the following solution that is even more ergonomic.
for simplicity lets assume a PersonTablePage and a PersonPage (node-page).

1. The PersonTablePage decorates the data using the HTML decorator and AppLinkActions. It does not contain a ModifyMenu.

  protected void execLoadData(SearchFilter filter) {
//...for each loaded data row
    String personHtml = HTML.appLink("person:" + person.getPersonKey(),   person.getPersonName()).toHtml();
    //use the personHtml  app-linnk instead of person.getPersonName()
  }


2. handle the app-link action inside the PersonTablePage.Table class
    @Override
    protected void execAppLinkAction(String ref) {
      MessageBoxes.createOk().withBody(ref + " has been clicked.").show();
    }


3. enable html styling in the PersonNameColumn
    public class PersonNameColumn extends AbstractStringColumn {
//...
      @Override
      protected boolean getConfiguredHtmlEnabled() {
        return true;
      }
    }


4. in the child page PersonPage keep the ModifyMenu.

That way you will have a link in the PersonTablePage for edit and a menu in the PersonPage detail page.

I added some screen shots of my personal mini-crm.
  • Attachment: table.JPG
    (Size: 93.30KB, Downloaded 4 times)
  • Attachment: node.JPG
    (Size: 53.06KB, Downloaded 4 times)
Forum: JFace
 Topic: TextEditor substring Content proposals`?
TextEditor substring Content proposals`? [message #1752191] Thu, 19 January 2017 15:33
Dimg Cim is currently offline Dimg CimFriend
Messages: 31
Registered: December 2015
Member
Hello everyone,

I implement a small Texteditor with highlighting Syntax and Content proposals. (I don't want this implementd in XText). I used the Eclipse JFace Text Framework. So how can I implement the IContentAssistProcessor, that I can autocomplete substrings? At now it only search for the whole words at beginning- Further when I typing a word and press the Content proposals insert the autocomplete, the last given prefix append to the word. So how is to do the right?

E.g. I want to get HelloWorld, I type he and add the Content proposals HelloWorld, the result ist heHelloWorld, but he should after complete deleted.

Hope this is clear.

Thanks
Dimg
Forum: Papyrus
 Topic: Oomph setup problems
Re: Oomph setup problems [message #1752151 is a reply to message #1752074] Thu, 19 January 2017 09:44
Francois Le Fevre is currently offline Francois Le FevreFriend
Messages: 48
Registered: October 2014
Location: Paris Saclay, France
Member
Simon,
it is surely possible of a mis configuration due to the toolsmiths work
I am not using Oomph I will try and come back.

I have created the following bug to trace our exchange:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=510670

Francois
 Topic: Moving Properties and Operations to a different class
Moving Properties and Operations to a different class [message #1752177] Thu, 19 January 2017 13:30
Philip Schröder is currently offline Philip SchröderFriend
Messages: 3
Registered: January 2017
Junior Member
Hello,
I want to create a superclass for a bunch of subclasses and move the shared properties and operations there, but whenever I cut+paste operations from one class to another (doesn't have to be in a generalization association), the properties and operations always appear in the new class directly under the class name instead of the properties or operations areas for unknown reasons.
Does it mean they are seen a foreign properties/operations or what is the reason?

How do I do it that the operations are copied to the operation department, and the properties to the property department, and what does it mean, that they appear in the class name area?

Thank you for your time and trouble.

Best

Phil.
 Topic: UML Class Diagram attributes compartment issue
UML Class Diagram attributes compartment issue [message #1752182] Thu, 19 January 2017 13:45
Scott Mansfield is currently offline Scott MansfieldFriend
Messages: 3
Registered: February 2016
Junior Member
In Mars.3/Papyrus 1.1.4
When I have an association with a navigable member end, that member end could be shown in the attribute compartment of the class. In Neon.2/Papyrus 2.0.2 I can't.

Example:
If I right click on a class and click on Filters -> Show/Hide Contents. The attributes and the member ends show up and are able to be selected.

I have attached a pdf of what is possible in Mars.3. How can I get the association ends/member ends to display in Neon.2?
  • Attachment: pap-comp.pdf
    (Size: 95.32KB, Downloaded 6 times)
 Topic: Moving Lines
Moving Lines [message #1752184] Thu, 19 January 2017 13:51
Scott Mansfield is currently offline Scott MansfieldFriend
Messages: 3
Registered: February 2016
Junior Member
In Mars.3/Papyrus 1.1.4

I could click on a rectilinear line and drag it anywhere between the classes. In Neon, the line only moves when the line is dragged far enough for the connection points to move to a different side of the class.

Is there some new setting to allow a regctilinear line to be dragged anywhere? It is troublesome to have to move one end and then move the other end (which works but is multiple clicks for what used to be a simple drag operation).
 Topic: Elementtype for Aggregate
Re: Elementtype for Aggregate [message #1752187 is a reply to message #1750974] Thu, 19 January 2017 14:40
Thomas Gericke is currently offline Thomas GerickeFriend
Messages: 9
Registered: February 2016
Junior Member
Thank you so much!

I went the "Java way" and implemented both an aggregate and a composite helper advice.

Great help! And thanks once again!

Best regards, Thomas
 Topic: Activity Diagrams in Papyrus - Advanced Features
Re: Activity Diagrams in Papyrus - Advanced Features [message #1752192 is a reply to message #1751773] Thu, 19 January 2017 15:40
Arnaud Cuccuru is currently offline Arnaud CuccuruFriend
Messages: 31
Registered: April 2010
Member
Hi,
Thanks for your feedbacks. A few comments :

- specifying multicast and multireceive by placing an object node on the edge of partitions (swimlanes) (as shown in Fig. 15.18 in formal/15-03-01): Is there any other way to depict this in Papyrus?

This notation is not supported

- multi-dimensional swimlane notation: Is there a way to add both vertical and horizontal partitions in an activity diagram (as shown in Fig. 15.66c in formal/15-03-01)?

This notation is not supported

- parameter sets notation: Is there a way to add input pins as parameter sets to depict possible alternate sets of inputs that can trigger an activity (like in Fig. 16.23 in formal/15-03-01)

I am not familiar with ParameterSets, but the diagram in Fig. 16.23 depicts an InvocationAction, with multiple argument pins. As you probably know, argument pins are implicitly mapped to paremeters of the invoked behavior or operation. In the behavior or operation definition, these parameters can be grouped into ParameterSets. However, Papyrus does not provide any notation to represent at the pin level the grouping specified at the parameter level.

We don't have plans in the near future to fix these limitations (at least, by the Oxygen release). We have ongoing development activities to improve ergonomy of activity diagrams (we plan to make annoucements soon about this), but our focus at the moment is on executable activity modeling, as defined in OMG specifications fUML and PSCS (so for example, Activity partitions are out of the scope of this work).

Regarding the last limitation you have found :

- object flows into decision nodes: I can't seem to find a way to add a decision input flow to a decision node (to show that the decision is based on some input objects).

Indeed, the « UML tab » of the property view is rather empty when selecting a DecisionNode. This is certainly something that we should fix for the Oxygen release. Meanwhile, you can go to the « advanced tab » of the property view, where you have the possibility to select the decision input flow.

Cheers,
Arnaud
Forum: Lua Development Tools
 Topic: luadoc and italic names of my variables...
Re: luadoc and italic names of my variables... [message #1752193 is a reply to message #1741171] Thu, 19 January 2017 15:44
Sven Van de Velde is currently offline Sven Van de VeldeFriend
Messages: 8
Registered: March 2016
Junior Member
I can guarantee that this is not working at all correctly. Who can look at this?
Forum: EMF
 Topic: Implemementing an external interface in XCore
Re: Implemementing an external interface in XCore [message #1752117 is a reply to message #1752018] Thu, 19 January 2017 03:44
Ed Merks is currently offline Ed MerksFriend
Messages: 28124
Registered: July 2009
Senior Member
Yes, I can reproduce that problem. Please open a Bugzilla.
 Topic: [CDO] High level change notifications between clients
Re: [CDO] High level change notifications between clients [message #1752132 is a reply to message #1752087] Thu, 19 January 2017 07:19
Marcus Rosell is currently offline Marcus RosellFriend
Messages: 3
Registered: January 2017
Location: Gothenburg, Sweden
Junior Member
Thanks.
Timing wise, lets say that I commit a transaction and afterward I do a sendMessage(), will the other clients receive, first, the change notifications and later the messages?
Will the events be fired in the "correct" order?



Re: [CDO] High level change notifications between clients [message #1752136 is a reply to message #1752132] Thu, 19 January 2017 07:53
Eike Stepper is currently offline Eike StepperFriend
Messages: 6279
Registered: July 2009
Senior Member
No, there's no guarantee about the order in which these different types of signals arrive at other clients. Only the correct order of commit notifications is guaranteed.

But you can achieve the correct ordering yourself with not much effort. Capture the commit timestamp with transaction.commit().getTimeStamp() or CDOTransaction.getLastCommitTime() and encode it into the CDORemoteMessage that you'll send to the other clients. The receiving clients decode the timestamp from the message and call transaction.waitForUpdate(timestamp) before they act upon the rest of the message.
Re: [CDO] High level change notifications between clients [message #1752154 is a reply to message #1752136] Thu, 19 January 2017 09:49
Marcus Rosell is currently offline Marcus RosellFriend
Messages: 3
Registered: January 2017
Location: Gothenburg, Sweden
Junior Member
Sounds great, I will try this approach.
Thanks.
 Topic: Generating Ecores/genmodel files for Multiple XSDs programatically
Re: Generating Ecores/genmodel files for Multiple XSDs programatically [message #1752118 is a reply to message #1752071] Thu, 19 January 2017 03:47
Ed Merks is currently offline Ed MerksFriend
Messages: 28124
Registered: July 2009
Senior Member
You could look in org.eclipse.emf.codegen.ecore.Generator.PlatformRunnable.run(Generator, Object) . It's mostly an issue of creating a GenModel and calling org.eclipse.emf.codegen.ecore.genmodel.GenModel.initialize(Collection<? extends EPackage>).
Re: Generating Ecores/genmodel files for Multiple XSDs programatically [message #1752119 is a reply to message #1752118] Thu, 19 January 2017 03:48
Ed Merks is currently offline Ed MerksFriend
Messages: 28124
Registered: July 2009
Senior Member
No Message Body
Re: Generating Ecores/genmodel files for Multiple XSDs programatically [message #1752159 is a reply to message #1752118] Thu, 19 January 2017 10:15
Samer Ra is currently offline Samer RaFriend
Messages: 3
Registered: January 2017
Junior Member
Would you mind elaborate on this? Do you mean to look into org.eclipse.emf.codegen.ecore.Generator.PlatformRunnable.run(Generator, Object) class documentation to figure out this or do you suggest better way? Any suggestion on how to put these things together? Tutorial/sourcecode/example/ any useful point guide me through?!
Thanks!
Re: Generating Ecores/genmodel files for Multiple XSDs programatically [message #1752160 is a reply to message #1752118] Thu, 19 January 2017 10:16
Samer Ra is currently offline Samer RaFriend
Messages: 3
Registered: January 2017
Junior Member
No Message Body

[Updated on: Thu, 19 January 2017 10:17]

Report message to a moderator

Re: Generating Ecores/genmodel files for Multiple XSDs programatically [message #1752164 is a reply to message #1752160] Thu, 19 January 2017 11:39
Ed Merks is currently offline Ed MerksFriend
Messages: 28124
Registered: July 2009
Senior Member
Of course it's open source, so the source code is all there for you to see. You could, for example, set a breakpoint in the GenModelImpl's initialize method, start a runtime Eclipse IDE, and import several XSDs in the wizard. Then you'll see exactly what it's all doing. There are no specialized tutorials to answer this question, and I'm traveling, so I can only give you a pointer. Most of the work I do with Eclipse involves using the debugger to see how other technologies work, because there most often isn't good documentation for how they work...
 Topic: EMF Forms, load persisted model problem
Re: EMF Forms, load persisted model problem [message #1752120 is a reply to message #1752098] Thu, 19 January 2017 03:49
Ed Merks is currently offline Ed MerksFriend
Messages: 28124
Registered: July 2009
Senior Member
They might see your post here and they might not. Perhaps post to the EMFT forum as I suggested.
Re: EMF Forms, load persisted model problem [message #1752145 is a reply to message #1752120] Thu, 19 January 2017 08:53
Jonas Helming is currently offline Jonas HelmingFriend
Messages: 10
Registered: September 2016
Junior Member
Hi,

we saw it, but still as Ed suggested, kindly post EMF Forms related questions on the EMFT forum.

About your issue: The NPE occurs, because the DefaultReferenceService tries to retrieve an AdapterFactoryEditingDomain from the EObject. I assume the EObject has not been added to any resource? If so, you either need to do that before modifying it or implement a custom reference service, which behaves differently on adding new elements.

Best regards

Jonas

--
Get professional Eclipse developer support:
http://eclipsesource.com/en/services/developer-support/
Re: EMF Forms, load persisted model problem [message #1752183 is a reply to message #1752145] Thu, 19 January 2017 13:48
Javier Alfonso is currently offline Javier AlfonsoFriend
Messages: 4
Registered: January 2017
Junior Member
Thanks for the reply, how can i add the object to the resource?
Re: EMF Forms, load persisted model problem [message #1752195 is a reply to message #1752183] Thu, 19 January 2017 16:02
Javier Alfonso is currently offline Javier AlfonsoFriend
Messages: 4
Registered: January 2017
Junior Member
The real problem with my code is that I'm still learning. After some digging on Jonas reply I found out that I should be using commands to modify my objects. The correct way is something like
"In EMF you deal a lot with model objects. Almost any UI selection operation hands over a model object to you. It is so easy to fall into the trap of changing the state of the model objects directly once you have access to it, either using the generated model API or using reflective methods. Problems due to such model updates are detected only later, mostly when Undo/Redo operations stops working as expected.
Use EMF Commands! Modify your model objects only using commands. Either directly using EMF commands, extending them or creating your own commands. When you need to club many operations as a single command use CompoundCommands. Use ChangeCommand when you are up to making a lot of model changes in a transactional way."



Current Time: Thu Jan 19 17:23:02 GMT 2017

Powered by FUDForum. Page generated in 0.03687 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software