jolie-devel Mailing List for Jolie (Page 22)
A service-oriented programming language.
Brought to you by:
fmontesi
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(18) |
Nov
(28) |
Dec
(36) |
2014 |
Jan
(21) |
Feb
(21) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(14) |
Sep
(14) |
Oct
(5) |
Nov
(26) |
Dec
(8) |
2015 |
Jan
(21) |
Feb
(194) |
Mar
(113) |
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: Matthias D. W. <mwa...@ya...> - 2013-10-22 17:02:09
|
Dear Fabrizio, Fabrizio Montesi schrieb: > Dear Matthias, > thanks for your contribution! > That example is indeed wrong, since variable paths cannot start with a > dynamic lookup. > > What I mean is that > > global.(exam.studentId).(exam.examId) > > is not fine because the first variable name after the global keyword, > which acts just as a keyword and is not a variable, i.e., > (exam.studentId), is dynamic and Jolie does not allow for that. The > reason is that otherwise many static analyses of code would become > impossible. > > A way to fix the example could be to use something like: > > global.exams.(exam.studentId).(exam.examId) > > This way, the variable path would start with exams, which is static > and therefore OK. ah okay - I think this is not explained in the docs and the error message is misleading. > I'm adding Claudio and Saverio in CC since they may be interested in > following up. > > I'm attaching a modified version of server.ol that runs for me. I also > had to change the usage of join, since it's a one-way operation and > not a request-response as used in your zip. Let me know! But the interface changes which I made are correct? Since my interface definition diverges significantly from the original one. > @Saverio: we should update the website with the fixed version when we > finish sorting this out. In the meantime I gave a look at another example, namely http://www.jolie-lang.org/?top_menu=documentation&sideMenuAction=architectural_composition/dynamic_embedding (Dynamic_Embedding_Counter). Btw: the link should be called "Dynamic_Embedding_Counter Example" not "Processes Code Example <http://www.jolie-lang.org/content/documentation/architectural_composition/code/dynamic_embedding_code.zip>". This example would be nice to test with multiple clients running concurrently. But Client.ol contains a hard-coded callback port which prevents this: > inputPort CounterClient{ > // Location: "socket://localhost:4003" > Protocol: sodep > Interfaces: CounterClientInterface > } Does Jolie support a method to allocate a free port number dynamically (for instance port 4000 + something)? Cheers, Matthias > > Cheers, > Fabrizio. > > On Tue, Oct 22, 2013 at 11:07 AM, Matthias Dieter Wallnöfer > <mwa...@ya...> wrote: >> Dear Jolie devs, >> >> the documentation at >> http://www.jolie-lang.org/?top_menu=documentation&sideMenuAction=basics/sessions >> section "Multiple correlation variables" provides an example about exams, >> students and professors. >> >> I would be glad to try it out but it seems incomplete (and also not >> downloadable). I attempted to fix it up but now I am stuck. >> >> For instance the line: >> >> global.(exam.studentId).(exam.examId) << exam; >> >> yields to >> >> java.lang.ClassCastException: >> jolie.lang.parse.ast.expression.VariableExpressionNode cannot be cast to >> jolie.lang.parse.ast.expression.ConstantStringExpression >> >> I have no idea how to change that. >> >> Please find attached my WIP. It would be nice to have at least the server >> side working. >> >> Regards, >> Matthias Wallnöfer >> >> >> ------------------------------------------------------------------------------ >> October Webinars: Code for Performance >> Free Intel webinars can help you accelerate application performance. >> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most >> from >> the latest Intel processors and coprocessors. See abstracts and register > >> http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk >> _______________________________________________ >> Jolie-devel mailing list >> Jol...@li... >> https://lists.sourceforge.net/lists/listinfo/jolie-devel >> |
From: Fabrizio M. <fam...@gm...> - 2013-10-22 14:34:08
|
Dear Matthias, thanks for your contribution! That example is indeed wrong, since variable paths cannot start with a dynamic lookup. What I mean is that global.(exam.studentId).(exam.examId) is not fine because the first variable name after the global keyword, which acts just as a keyword and is not a variable, i.e., (exam.studentId), is dynamic and Jolie does not allow for that. The reason is that otherwise many static analyses of code would become impossible. A way to fix the example could be to use something like: global.exams.(exam.studentId).(exam.examId) This way, the variable path would start with exams, which is static and therefore OK. I'm adding Claudio and Saverio in CC since they may be interested in following up. I'm attaching a modified version of server.ol that runs for me. I also had to change the usage of join, since it's a one-way operation and not a request-response as used in your zip. Let me know! @Saverio: we should update the website with the fixed version when we finish sorting this out. Cheers, Fabrizio. On Tue, Oct 22, 2013 at 11:07 AM, Matthias Dieter Wallnöfer <mwa...@ya...> wrote: > Dear Jolie devs, > > the documentation at > http://www.jolie-lang.org/?top_menu=documentation&sideMenuAction=basics/sessions > section "Multiple correlation variables" provides an example about exams, > students and professors. > > I would be glad to try it out but it seems incomplete (and also not > downloadable). I attempted to fix it up but now I am stuck. > > For instance the line: > > global.(exam.studentId).(exam.examId) << exam; > > yields to > > java.lang.ClassCastException: > jolie.lang.parse.ast.expression.VariableExpressionNode cannot be cast to > jolie.lang.parse.ast.expression.ConstantStringExpression > > I have no idea how to change that. > > Please find attached my WIP. It would be nice to have at least the server > side working. > > Regards, > Matthias Wallnöfer > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk > _______________________________________________ > Jolie-devel mailing list > Jol...@li... > https://lists.sourceforge.net/lists/listinfo/jolie-devel > |
From: Fabrizio M. <fam...@gm...> - 2011-03-08 08:46:02
|
Hello Karoly, On Mon, Mar 7, 2011 at 10:06 PM, ksza <ks...@it...> wrote: > Hello, > > My name is Karoly Szanto and I am a M.Sc. student in Software Engineering at > the IT University of Copenhagen. I ran across Jolie at a course today and I > find it a very interesting project. Browsing the projects site I've found a > list of available tasks that could be take over as a contribution to jolie. > I would like to contribute at first by trying to carry out the "New > Operators" job, if it is still available. yes, the task is still available. Here's a rough guide on how to do add one of these operators: - in libjolie - jolie.parse.Scanner add a TokenType for that operator; - update the scanner main cycle for reading the token; - add a class for representing the abstract syntax node in jolie.lang.parse.ast, you may get inspiration from AssignStatement; - update the parser (OLParser) for generating the abstract syntax node; - in jolie, create a class for representing the interpretation node, you may get inspiration from AssignmentProcess; - update the OOITBuilder for generating the interpretation node from the abstract syntax node. That's just a rough overview, please post here all your doubts as you go. I suggest that you start implementing only one operator (e.g. +=) and send your patches here on the ml, so that we can refine it together and then you could go on with the other operators (for which the development process should be almost identical, apart from the slightly different semantics). > It would be nice if I could read through a developer guide - - especially on > setting up the development environment, building different parts of the > project, testing ... Setting up a development environment for Jolie is fairly easy, you just need NetBeans. Then, every project you can find in the source tree can be opened as a NetBeans project. The ones you're most interested in for this task are "jolie" and "libjolie". If you want to debug, the main project is "jolie" and the main class is "jolie.Jolie". You should use the following arguments in your run configuration: -l /opt/jolie/lib:/opt/jolie/javaServices/*:/opt/jolie/extensions/* -i /opt/jolie/include main_file.ol where /opt/jolie should be substituted with your installation directory and main_file.ol with the filename of the Jolie program you want to use for testing (remember to set the current directory to that of the file, in the run configuration). Let me know if you encounter any problem with that. Best, Fabrizio. |
From: ksza <ks...@it...> - 2011-03-07 21:06:29
|
Hello, My name is Karoly Szanto and I am a M.Sc. student in Software Engineering at the IT University of Copenhagen. I ran across Jolie at a course today and I find it a very interesting project. Browsing the projects site I've found a list of available tasks that could be take over as a contribution to jolie. I would like to contribute at first by trying to carry out the "New Operators" job, if it is still available. It would be nice if I could read through a developer guide - - especially on setting up the development environment, building different parts of the project, testing ... I look forward to hearing from you, Karoly Szanto |
From: Fabrizio M. <fam...@gm...> - 2010-04-15 09:01:50
|
On Thursday 15 April 2010 10:57:23 Leandro Sales wrote: > Thank you for your answer! > > Another thing I'm trying to do is to specify a fault handler to all faults, > like a catchAll from BPEL, is it possible? Yes, it is. Just use the special fault name "default", like in the following: install( default => someProcess ); Regards, Fabrizio. |
From: Leandro S. <lea...@gm...> - 2010-04-15 08:57:30
|
Thank you for your answer! Another thing I'm trying to do is to specify a fault handler to all faults, like a catchAll from BPEL, is it possible? Regards, Leandro On Wed, Apr 14, 2010 at 12:28 PM, Fabrizio Montesi <fam...@gm...>wrote: > On Wednesday 14 April 2010 11:29:22 Leandro Sales wrote: > > Hi, > > > > It is not clear in the jolie tutorials how to install a fault handler to > a > > exception thrown by a Web Service. > > > > To handle this kind of exception is also used the dynamic handler > > installation (inst("fault_name"=>...))? > > > > if yes, how the "fault_name" is represented? > > if no, how this kind of exception are handled? > > > > Thank you, > > > > Leandro > > Hi Leandro, > > yes, faults thrown by Web Services are handled as usual by install( > faultName > => Process ), where faultName is the name of the SOAP fault. > The scopeName.faultName variable will contain the fault data as usual. > Feel free to ask further questions should you have other problems. > > Bye, > Fabrizio. > |
From: Fabrizio M. <fam...@gm...> - 2010-04-14 10:29:15
|
On Wednesday 14 April 2010 11:29:22 Leandro Sales wrote: > Hi, > > It is not clear in the jolie tutorials how to install a fault handler to a > exception thrown by a Web Service. > > To handle this kind of exception is also used the dynamic handler > installation (inst("fault_name"=>...))? > > if yes, how the "fault_name" is represented? > if no, how this kind of exception are handled? > > Thank you, > > Leandro Hi Leandro, yes, faults thrown by Web Services are handled as usual by install( faultName => Process ), where faultName is the name of the SOAP fault. The scopeName.faultName variable will contain the fault data as usual. Feel free to ask further questions should you have other problems. Bye, Fabrizio. |
From: Leandro S. <lea...@gm...> - 2010-04-14 09:29:28
|
Hi, It is not clear in the jolie tutorials how to install a fault handler to a exception thrown by a Web Service. To handle this kind of exception is also used the dynamic handler installation (inst("fault_name"=>...))? if yes, how the "fault_name" is represented? if no, how this kind of exception are handled? Thank you, Leandro |
From: Fabrizio M. <fam...@gm...> - 2009-12-01 08:51:39
|
On Tuesday 01 December 2009 00:52:06 evaimitico wrote: > improved version, now also *=, /= and %= are supported. Great! > > That aside, I'd prefer the new operators to be implemented as proper > > statements (I'm speaking about statements and not expressions, because I > > think that such operators would make the latter harder to read) rather > > than > > quindi diciamo che non vuoi che siano scritte frasi del tipo: > f = c.d * f = 3 * f -= 1 ; Esatto, non vedo alcun caso d'uso veramente utile per una feature del genere. Se a qualcuno ne viene in mente uno potrei cambiare idea. :-) > > (se non vuoi basta togliere le righe che ho aggiunto al metodo parseFactor) > > > shortcuts in the parser. That would mean to: > > 1 - add something like class AddAndAssignStatement to > > jolie.lang.parse.ast; 2 - update OLVisitor (and its implementations) for > > the new statement; 3 - add AddAndAssignProcess to jolie.process > > ho dato un occhio al discorso dei process e delle expression, ma non > mi sono del tutto ciare le motivazioni che ti hanno spinto a tale > suddivisione e quale dovrebbe essere la responsabilità delle classi > process. Le classi Process sono responsabili della vera e propria esecuzione del codice. Per implementare un nuovo statement in JOLIE serve quindi: - aggiungere la classe che lo rappresenta nell'AST; - aggiungere la classe che lo rappresenta nell'OOIT (Object-oriented Interpretation Tree, cioè, l'albero di esecuzione dei nodi Process); - aggiornare la classe OOITBuilder per generare il nodo Process giusto per il nuovo statement. Esattamente cosa non ti è chiaro? Il perchè JOLIE sia strutturato così (Parser->AST->Optimizers&Checkers->OOIT) o il perché Expression e Process siano cose separate nell'OOIT? Ciao, Fabrizio. |
From: evaimitico <eva...@gm...> - 2009-11-30 23:52:42
|
improved version, now also *=, /= and %= are supported. Ps a quest'ora il mio inglese è pessimo ^_^ quindi continuerò a scrivere in italiano On Mon, Nov 30, 2009 at 16:18, Fabrizio Montesi <fam...@gm...> wrote: > I would like very much to have that feature implemented, yes. The > implementation needs to be refined a bit though. Your patch does not consider > variable paths, so if i write, for example, > a.b += 2 > your patch would not catch this. ora vengono interpretati correttamente > That aside, I'd prefer the new operators to be implemented as proper > statements (I'm speaking about statements and not expressions, because I think > that such operators would make the latter harder to read) rather than quindi diciamo che non vuoi che siano scritte frasi del tipo: f = c.d * f = 3 * f -= 1 ; (se non vuoi basta togliere le righe che ho aggiunto al metodo parseFactor) > shortcuts in the parser. That would mean to: > 1 - add something like class AddAndAssignStatement to jolie.lang.parse.ast; > 2 - update OLVisitor (and its implementations) for the new statement; > 3 - add AddAndAssignProcess to jolie.process ho dato un occhio al discorso dei process e delle expression, ma non mi sono del tutto ciare le motivazioni che ti hanno spinto a tale suddivisione e quale dovrebbe essere la responsabilità delle classi process. buona serata! |
From: Fabrizio M. <fam...@gm...> - 2009-11-30 15:18:45
|
> Hi! > My name is Fabrizio Pinto, i've met Guido at InnovAMI conference on > thursday. Hi Fabrizio, and welcome to the mailing list! > If you like the approach ( a token translation at parser level > instead of adding new nodes to the ast), i'll implement the others > operators and improve this contribution. > At the moment you can use theese operators directly with expression > like 'a += 1' but expression like 'a = b * c+=1' are not allowed (Do > you want expression like this?) > > PS helloworld.ol is the file successfully interpreted by jolie with > new operators > > greetings I would like very much to have that feature implemented, yes. The implementation needs to be refined a bit though. Your patch does not consider variable paths, so if i write, for example, a.b += 2 your patch would not catch this. That aside, I'd prefer the new operators to be implemented as proper statements (I'm speaking about statements and not expressions, because I think that such operators would make the latter harder to read) rather than shortcuts in the parser. That would mean to: 1 - add something like class AddAndAssignStatement to jolie.lang.parse.ast; 2 - update OLVisitor (and its implementations) for the new statement; 3 - add AddAndAssignProcess to jolie.process The parser modification would be much simpler than what you're doing now (just check for the right token in the same place where we check for = after a variable path). This may looks complex, but it's in practice simple and needed to make every layer (lexer, parser, optimizer, compiler, etc.) do just its job and keep concepts separated. Would you consider following my suggestions for changing your patch? I'd be glad to help and it's a much welcome feature. Cheers, Fabrizio (yes, same name here). |
From: evaimitico <eva...@gm...> - 2009-11-29 10:52:23
|
Hi! My name is Fabrizio Pinto, i've met Guido at InnovAMI conference on thursday. If you like the approach ( a token translation at parser level instead of adding new nodes to the ast), i'll implement the others operators and improve this contribution. At the moment you can use theese operators directly with expression like 'a += 1' but expression like 'a = b * c+=1' are not allowed (Do you want expression like this?) PS helloworld.ol is the file successfully interpreted by jolie with new operators greetings |