developing Scala/Lift using Eclipse

81 views
Skip to first unread message

kmed

unread,
Apr 20, 2009, 5:40:20 PM4/20/09
to Lift
Hello all,

I just started learning Scala and came across Lift. I am using Eclipse
Ganymede with the Scala-Plugin. How do I fully include the Lift-
sources to navigate (Strg+Click) into the Lift-Classes?
Currently Eclipse does not even understand the absolute _root_-package-
thingy. It's pretty annoying if everything is red and only maven knows
if it compiles correctly :(
Any Hint?

Thanks in advance,
Kai

bradford

unread,
Apr 20, 2009, 9:14:43 PM4/20/09
to Lift
I think developing lift apps in Eclipse deserves a screencast. There
seems to be popular demand for these two. I would do the screencast
myself, but I can't figure it out either. NetBeans is very simple.
With Eclipse I get a bunch of syntax errors with this nested Maven
module project I'm working on -- the JPA demo to be precise.

NetBeans is fine for now, but there are some Eclipse features that are
very nice.

So, if anyone has time for this, I would certainly enjoy watching
it :)

Lee Mighdoll

unread,
Apr 21, 2009, 1:10:12 AM4/21/09
to lif...@googlegroups.com
I've seen that problem, though I don't recall exactly when.  Perhaps your your classpath variables aren't set up correctly?

With your project highlighted in the project explorer, try the following menu sequence:  Project > Properties > Java Build Path > Libraries.

On my version, I see a bunch of libraries that start out M2_REPO, and if I scroll the library window to the right I see that M2_REPO is successfully resolved to: - /home/lee/.m2/repository... If you don't see the libraries resolved correctly to your repository, Add Variable .. > Configure Variables..., gives you the chance to set the M2_REPO.

Failing that, here's some other voodoo you might try.
* clean all
* make a phantom change to the M2_REPO variable anyway, then and change it back.
* reinstall eclipse classic 3.4.2, with the 2.7.3 scala plugin and no other plugins.
   
Lee

g-man

unread,
Apr 20, 2009, 8:33:31 PM4/20/09
to Lift
Since Scala is a dialect of Java, and Lift is an extension of that, I
went the Netbeans route because NB is basically part of Java, and I am
happy so far:

- Netbeans is quicker to load than Eclipse, and doesn't create all
those zillions of files behind;
- Netbeams handles all the moving parts well, and Maven is happy;
- Lift and Scala are not that complex that you need any heavy lifting
for debugging (I have found) - it's mostly learning the Lift magic
about how to make the Derby db, Jetty, and Maven all work together.

I agree Eclipse has some nice features, but the light weight of
Netbeans tipped the scales for me...

Programming is fun again, thanks to Lift!

Kai M.

unread,
Apr 21, 2009, 1:16:40 PM4/21/09
to Lift


On Apr 21, 7:10 am, Lee Mighdoll <leemighd...@gmail.com> wrote:
> On my version, I see a bunch of libraries that start out M2_REPO, and if I
> scroll the library window to the right I see that M2_REPO is successfully
> resolved to: - /home/lee/.m2/repository... If you don't see the libraries
> resolved correctly to your repository, Add Variable .. > Configure
> Variables..., gives you the chance to set the M2_REPO.

thanks alot for this fact. indeed the var was not set. however, after
setting it up, eclipse does not show any import-errors but i still can
not navigate into the sources nor do a proper build.
switching to netbeans right now... i really hope it wont get eclipse-
like PITA

+42 for eclipse-screencast ;)

thanks!
kai

Lee Mighdoll

unread,
Apr 21, 2009, 3:03:37 PM4/21/09
to lif...@googlegroups.com
I've played a bit with both netbeans 6.7m2 and eclipse 3.4.2 with the 2.7.3 plugin.  I'm currently using eclipse, but I've found it to be fairly tempermental... I often have to manually do a clean build to get correct error messages, or reload the file in the editor, and stepping through the debugger ping pongs up and down a bit.  But when eclipse works, the turnaround time to restart a lift application is less than five seconds, and the debugger generally works well.  I'm hoping that the 2.7.4 version of eclipse will be better.

I had some trouble debugging with netbeans -- I couldn't set scala breakpoints in some places for example. 

The netbeans javascript code editor is the best I've used so far.  Aptana provides a nice (free) javascript debugging environment for eclipse.

Lee

Derek Chen-Becker

unread,
Apr 21, 2009, 3:45:26 PM4/21/09
to lif...@googlegroups.com
Eclipse has been on and off with me. The new version definitely works better, but I write code against Maven projects with nested modules and that combination seems to make everything fairly unhappy. I get weird error messages like "_root_ does not exist" that go away if I stop and restart Eclipse.

Derek

Timothy Perrett

unread,
Apr 21, 2009, 3:50:09 PM4/21/09
to Lift
The main one i've come across is that whole jetty WebAppContext which
I dont seem to be able to get rid of.... did anyone find a solution
for that?

Cheers, Tim

Miles Sabin

unread,
Apr 21, 2009, 3:59:58 PM4/21/09
to lif...@googlegroups.com
On Tue, Apr 21, 2009 at 8:45 PM, Derek Chen-Becker
<dchen...@gmail.com> wrote:
> Eclipse has been on and off with me. The new version definitely works
> better, but I write code against Maven projects with nested modules and that
> combination seems to make everything fairly unhappy. I get weird error
> messages like "_root_ does not exist" that go away if I stop and restart

I'm going to be doing on Lift development with Eclipse at the Scala
Lift Off, so I guess I'm going to be finding out all about these
issues.

But, for my immediate enlightenment, if Eclipse doesn't work well with
Maven nested modules and does (apparently?) work well with non-nested
modules, then why don't you just use non-nested modules?

Cheers,


Miles

--
Miles Sabin
tel: +44 (0)7813 944 528
skype: milessabin
http://twitter.com/milessabin

Miles Sabin

unread,
Apr 21, 2009, 4:01:24 PM4/21/09
to lif...@googlegroups.com
I wrote:
> I'm going to be doing on Lift development with Eclipse at the Scala
> Lift Off

Let me try that again ...

I'm going to be doing a presentation on Lift development with Eclipse
at the Scala Lift Off.

Miles Sabin

unread,
Apr 21, 2009, 4:03:24 PM4/21/09
to lif...@googlegroups.com
On Tue, Apr 21, 2009 at 8:03 PM, Lee Mighdoll <leemi...@gmail.com> wrote:
> I've played a bit with both netbeans 6.7m2 and eclipse 3.4.2 with the 2.7.3
> plugin.  I'm currently using eclipse, but I've found it to be fairly
> tempermental ...

Do you have any compelling reason for not immediately upgrading to 2.7.4.RC1?

Derek Chen-Becker

unread,
Apr 21, 2009, 4:10:34 PM4/21/09
to lif...@googlegroups.com
First off, I don't want to come off as whining. I know you've put some tremendous effort into this and it shows. The new version (I'm actually using 2.8.0_blahblah), especially the new JDT weaving makes things generally a pleasure. The weird part for me is that with nested modules it sometimes works flawlessly. Right now I fired up Eclipse and the nested module that yesterday showed 112 errors is completely clean. The other weird issue that I sometimes get is the "unhandled event loop", where I'll type and suddenly the window stops responding to keyboard input. If I close the source file and reopen it then things work again.

As for nested modules, I use them because then I can issue a single "mvn install" in the top-level project and it builds all 8-10 modules at once. In particular, Lift uses nested modules.

Derek

Miles Sabin

unread,
Apr 21, 2009, 4:28:36 PM4/21/09
to lif...@googlegroups.com
On Tue, Apr 21, 2009 at 9:10 PM, Derek Chen-Becker
<dchen...@gmail.com> wrote:
> First off, I don't want to come off as whining. I know you've put some
> tremendous effort into this and it shows. The new version (I'm actually
> using 2.8.0_blahblah), especially the new JDT weaving makes things generally
> a pleasure. The weird part for me is that with nested modules it sometimes
> works flawlessly. Right now I fired up Eclipse and the nested module that
> yesterday showed 112 errors is completely clean. The other weird issue that
> I sometimes get is the "unhandled event loop", where I'll type and suddenly
> the window stops responding to keyboard input. If I close the source file
> and reopen it then things work again.

Unhandled event loop exceptions are an indication that something has
gone badly wrong in the UI part of the Scala IDE. When that happens
it'd help if you could check the Eclipse Error Log view and/or the
main Eclipse log file and create a ticket on Trac for it.

> As for nested modules, I use them because then I can issue a single "mvn
> install" in the top-level project and it builds all 8-10 modules at once. In
> particular, Lift uses nested modules.

OK, so then in the list of items for the "Eclipse Tooling for Lift"
what we really need is support for Maven nested modules? Or is this
something which should have generic Maven support?

Kai M.

unread,
Apr 21, 2009, 5:25:26 PM4/21/09
to Lift
sorry for taking over this thread again...
I tried NetBeans and it does not work any better. No JavaDocs, no
Sources, nothing. I tried to "download all sources/javadocs" menu-
item, etc about a dozen times..
I even got maven to work via runProject but of course there seems no
way to enable jvm-debugging via netbeans.

Just 5 minutes ago I found this "mvn eclipse:eclipse -DdownloadSources
-DdownloadJavadocs=true" command,
which does not work either:
import _root_.net.liftweb.util._
import _root_.net.liftweb.http._
import _root_.net.liftweb.sitemap._
import _root_.net.liftweb.sitemap.Loc._
are all broken...

PLEASE, is there any full description on how-to-configure-eclipse to
get
- full lift+scala sources
- full javadoc
- use the latest RC1 scala release
- some simple maven-automation

i am really willing to learn scala+lift but currently it's really
plain PITA.
I never needed several days to set up a new development environment,
thats kind of frustrating...

thanks a lot for your effort,
kai

Derek Chen-Becker

unread,
Apr 21, 2009, 7:31:53 PM4/21/09
to lif...@googlegroups.com
I'll open a ticket in Trac for the errors I'm seeing. I'm actually getting a different error now: "Build compiler (scalac) crashed". I'm happy to open tickets but I'm never sure if I'm duping :(. For what it's worth I'm getting a similar error to what I was getting earlier in a project that is a simple Maven project with no modules. I have the following code:

import _root_.java.sql._
import _root_.org.slf4j._

And the Maven Dependencies shows the slf4j jars, but I get the error that slf4j is not a member of package org. If I do a Project->Clean... then the error goes away but I still have a pink squiggly in the code.

Thanks,

Derek

Miles Sabin

unread,
Apr 21, 2009, 7:35:11 PM4/21/09
to lif...@googlegroups.com
On Wed, Apr 22, 2009 at 12:31 AM, Derek Chen-Becker
<dchen...@gmail.com> wrote:
> I'll open a ticket in Trac for the errors I'm seeing. I'm actually getting a
> different error now: "Build compiler (scalac) crashed".

That would typically (tho' not invariably) suggest a scalac bug which
can be reproduced on the command line rather than an Eclipse problem.
Do you get a successful command line build?

Derek Chen-Becker

unread,
Apr 21, 2009, 10:32:24 PM4/21/09
to lif...@googlegroups.com
Generally, yes, but I'll confirm the next time I get the error.

Thanks,

Derek

Channing

unread,
Apr 22, 2009, 6:14:08 AM4/22/09
to Lift
I've just set up a lift project in eclipse, here are the versions:

Eclipse Version: 3.5.0 Build id: I20090416-1053
Scala plugin 2.7.4RC1

The steps I went through are as follows:
1. created the lift project somewhere with mvn as usual
2. ran mvn:eclipse:eclipse on the created project
3. imported the project into eclipse and deleted the original
4. went to the project properties and edited each of the source
folders removing the 'Excluded items' which was preventing eclipse
from compiling the scala code
5. right clicked RunWebApp in the default package and 'Run As a Scala
Application'

That was it.

Whenever I change the pom, I use a terminal to run mvn commands from
the project directory and refresh my workspace, I have to repeat step
4 whenever I do this.

I have been unable to install any maven plugins in eclipse, p2 is very
unhelpful and I cannot figure it out.

Miles Sabin

unread,
Apr 22, 2009, 8:05:01 AM4/22/09
to lif...@googlegroups.com
On Wed, Apr 22, 2009 at 11:14 AM, Channing <channin...@mac.com> wrote:
> 4. went to the project properties and edited each of the source
> folders removing the 'Excluded items' which was preventing eclipse
> from compiling the scala code
<snip/>

> Whenever I change the pom, I use a terminal to run mvn commands from
> the project directory and refresh my workspace, I have to repeat step
> 4 whenever I do this.

Umm ... this Maven behaviour is just completely broken, isn't it? Or
am I missing something?

Can someone explain the rational for it to me?

Josh Suereth

unread,
Apr 22, 2009, 8:16:35 AM4/22/09
to lif...@googlegroups.com
On Wed, Apr 22, 2009 at 8:05 AM, Miles Sabin <mi...@milessabin.com> wrote:

On Wed, Apr 22, 2009 at 11:14 AM, Channing <channin...@mac.com> wrote:
> 4. went to the project properties and edited each of the source
> folders removing the 'Excluded items' which was preventing eclipse
> from compiling the scala code
<snip/>
> Whenever I change the pom, I use a terminal to run mvn commands from
> the project directory and refresh my workspace, I have to repeat step
> 4 whenever I do this.

Umm ... this Maven behaviour is just completely broken, isn't it? Or
am I missing something?

Can someone explain the rational for it to me?


The maven-eclipse-plugin is currently "broken" in the sense that it won't pay attention to the source directories configured by the maven-scala-plugin.  The developers seem unwilling to try to integrate these two plugins, as they have a "workaround".

The workaround is to configure the build-helper-plugin in your pom with the correct source directories, and then when running maven eclispe:eclipse you will see these show up.  Very intuitive eh?
 


Perhaps if enough people complain to the maven-eclipse-plugin guys, they'll think about changing how they determine source directories.


-Josh

Miles Sabin

unread,
Apr 22, 2009, 8:53:49 AM4/22/09
to lif...@googlegroups.com
On Wed, Apr 22, 2009 at 1:16 PM, Josh Suereth <joshua....@gmail.com> wrote:
> The maven-eclipse-plugin is currently "broken" in the sense that it won't
> pay attention to the source directories configured by the maven-scala-plugin.
> The developers seem unwilling to try to integrate these two plugins, as they
> have a "workaround".

Which developers are these? Where should I be applying pressure?

> The workaround is to configure the build-helper-plugin in your pom with the
> correct source directories, and then when running maven eclispe:eclipse you
> will see these show up.  Very intuitive eh?

Can't that workaround be made the default behaviour for Maven Scala
modules? At least then things would work out of the box with Eclipse
(if I'm understanding the situation correctly).

TBH, I'm a little bit cheesed off to discover that lots of the alleged
brokenness of the Scala IDE for Eclipse seem to boil down to Maven
trampling all over internal Eclipse metadata.

Can someone (Josh, you seem like the obvious candidate) please try and
get this sorted out at the Maven end?

Josh Suereth

unread,
Apr 22, 2009, 10:11:18 AM4/22/09
to lif...@googlegroups.com
On Wed, Apr 22, 2009 at 8:53 AM, Miles Sabin <mi...@milessabin.com> wrote:

On Wed, Apr 22, 2009 at 1:16 PM, Josh Suereth <joshua....@gmail.com> wrote:
> The maven-eclipse-plugin is currently "broken" in the sense that it won't
> pay attention to the source directories configured by the maven-scala-plugin.
> The developers seem unwilling to try to integrate these two plugins, as they
> have a "workaround".

Which developers are these? Where should I be applying pressure?

The maven-eclipse-plugin.  We've recently attracted the attention of Jason van-zyl so hoepfully that will encourage more support for scala :)


> The workaround is to configure the build-helper-plugin in your pom with the
> correct source directories, and then when running maven eclispe:eclipse you
> will see these show up.  Very intuitive eh?

Can't that workaround be made the default behaviour for Maven Scala
modules? At least then things would work out of the box with Eclipse
(if I'm understanding the situation correctly).

Perhaps lift should update it archetypes appropriately?  I'll update the documentation for the maven-scala-plugin accordingly.  I do not use the maven-eclipse-plugin personally, so it hasn't caused me pain directly.  I also recommend using one of the plugins for eclipse that actively synchs your data internally rather than updating eclipse configuration files outside of eclipse.  However,  I'll try to make sure we provide better help in this area.
 

Would one of the lift committers please add the following to your plugins section in the poms for your acrchetypes:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/scala</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-test-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/test/scala</source>
</sources>
</configuration>
</execution>

</executions>
</plugin>



TBH, I'm a little bit cheesed off to discover that lots of the alleged
brokenness of the Scala IDE for Eclipse seem to boil down to Maven
trampling all over internal Eclipse metadata.

True, the broken-ness is actually with the maven-eclipse integrations (specifically, the maven-eclipse-plugin "cheating" when it comes to calculating source directories).  I understand the gripe, however when integrating diverse plugins, I think misconceptions on who's to blame happen all the time.  The big fail here is that Maven is still working on being friendlier for multi-language projects, and some of the "downstream" projects aren't up-to-date yet.  I'm not aware of any "maven aspects" like feature that is flexible enoguh to allow me to monkey-patch fixes on plugins I have no control over, so I'm limited to trying to submit patches when applicable.  I hope it's not terribly inconvenient, but feel free to send any Maven + Eclipse questions (as they relate to adding scala support) my way.  I'm hoping to solve most of these issues with ESMi.


-Josh


Kai M.

unread,
Apr 23, 2009, 5:48:06 PM4/23/09
to Lift
has this already been applied to the pom?
should it work now?

thanks alot,
kai

On Apr 22, 4:11 pm, Josh Suereth <joshua.suer...@gmail.com> wrote:
> On Wed, Apr 22, 2009 at 8:53 AM, Miles Sabin <mi...@milessabin.com> wrote:
>
> > On Wed, Apr 22, 2009 at 1:16 PM, Josh Suereth <joshua.suer...@gmail.com>

Channing Walton

unread,
Apr 29, 2009, 5:29:03 AM4/29/09
to Lift
Can we fix our existing Lift project poms by adding the lump of xml
you just posted, or will that break things?

Josh Suereth

unread,
Apr 29, 2009, 8:46:19 AM4/29/09
to lif...@googlegroups.com
It should be innocuous.  (Assuming no typing errors).  It will also fix some of your mvn eclipse:eclipse woes.

Remember though, using mvn eclipse:eclipse does *not* give the "Scala IDE for Eclipse" any chance to fix/edit its configuration.   Most eclipse plugins assume they have full control over *their* configuration and when doing things through eclipse APIs, they have a chance to respond and tweak the project settings appropriately.   This means that any bugs you run into in eclispe should be reproduced without using mvn eclipse:eclipse.  This is why you should prefer eclipse plugins, rather than maven plugins, to do integration between Scala + Maven + Eclipse.

- Josh

David Bernard

unread,
Apr 29, 2009, 8:55:45 AM4/29/09
to lif...@googlegroups.com
Quick note :

* You need to use build-helper-maven-plugin (like Josh shown) only for mixed project.
* if you set in your
  <build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <testSourceDirectory>src/test/scala</testSourceDirectory>

then the maven-eclipse-plugin use the right directory (archetype use this setup)

my 2c

/davidB

Josh Suereth

unread,
Apr 29, 2009, 9:58:19 AM4/29/09
to lif...@googlegroups.com
Good catch!

Also if you just place your scala files in src/main/java (with your java files) you would be ok.

Channing Walton

unread,
Apr 29, 2009, 3:41:01 PM4/29/09
to Lift


On Apr 29, 1:55 pm, David Bernard <david.bernard...@gmail.com> wrote:
> * if you set in your
>   <build>
>     <sourceDirectory>src/main/scala</sourceDirectory>
>     <testSourceDirectory>src/test/scala</testSourceDirectory>

I seem to have that already but still have the problem after doing mvn
eclipse:eclipse

Tom

unread,
May 7, 2009, 7:46:21 AM5/7/09
to Lift
Is this working now? And how about Google Appengine Integration?

Thanks

David Pollak

unread,
May 7, 2009, 12:13:13 PM5/7/09
to lif...@googlegroups.com


On Thu, May 7, 2009 at 4:46 AM, Tom <t0m4...@gmail.com> wrote:

Is this working now?

Which "this" are you referring to?
 
And how about Google Appengine Integration?

GAE works except for Comet related stuff which will not work until Google supports some sort of message queue system.
 


Thanks





--
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

Tom Arnold

unread,
May 7, 2009, 6:00:03 PM5/7/09
to lif...@googlegroups.com
On Thu, May 7, 2009 at 6:13 PM, David Pollak <feeder.of...@gmail.com> wrote:

Which "this" are you referring to?
 

Oh sorry. I meant the Lift-Scala-Eclipse integration. (+GAE)

I tried to get it working, but even the Scala-Eclipse-GAE stuff seems buggy.

I tried using these steps:

http://penguinparens.blogspot.com/2009/04/further-steps-scalagwtapp-engineeclipse.html

Look at the comments for my problems.

Thanks again.

David Pollak

unread,
May 7, 2009, 6:31:33 PM5/7/09
to lif...@googlegroups.com

We're happy to offer support to Lift and Lift related topics, but the questions have to be on this list rather than in comments on someone's blog post.

If you've got questions about Scala and Eclipse and GAE generically, this is not the best place to ask them.

Thanks,

David
 


Thanks again.



Miles Sabin

unread,
May 7, 2009, 6:42:24 PM5/7/09
to lif...@googlegroups.com
On Thu, May 7, 2009 at 11:31 PM, David Pollak
<feeder.of...@gmail.com> wrote:
> If you've got questions about Scala and Eclipse and GAE generically, this is
> not the best place to ask them.

He wants to get Lift + maven + the Scala IDE for Eclipse + the GAE
plugin for Eclipse all working together, which is falling between
about as many stools as is possible unfortunately.

TBH, I think that here probably is as good a place as any to try and
thrash this out ... I'll do whatever I can to help on the Scala IDE
front.

But I'd understand if you'd rather punt this somewhere else ...

David Pollak

unread,
May 7, 2009, 6:43:55 PM5/7/09
to lif...@googlegroups.com
On Thu, May 7, 2009 at 3:42 PM, Miles Sabin <mi...@milessabin.com> wrote:

On Thu, May 7, 2009 at 11:31 PM, David Pollak
> If you've got questions about Scala and Eclipse and GAE generically, this is
> not the best place to ask them.

He wants to get Lift + maven + the Scala IDE for Eclipse + the GAE
plugin for Eclipse all working together, which is falling between
about as many stools as is possible unfortunately.

TBH, I think that here probably is as good a place as any to try and
thrash this out ... I'll do whatever I can to help on the Scala IDE
front.

But I'd understand if you'd rather punt this somewhere else ...

I'm totally cool with you providing support for this configuration on this list.
 


Cheers,


Miles

--
Miles Sabin
tel: +44 (0)7813 944 528
skype:  milessabin
http://twitter.com/milessabin


Miles Sabin

unread,
May 7, 2009, 6:48:31 PM5/7/09
to lif...@googlegroups.com
On Thu, May 7, 2009 at 11:43 PM, David Pollak
<feeder.of...@gmail.com> wrote:
> I'm totally cool with you providing support for this configuration on this
> list.

Well, hang on ...

The point is that this is all of our problem ... I can help with
generic Scala IDE problems, but Lift + Maven + GAE plugin stuff is not
in my purview.

Atsuhiko Yamanaka

unread,
May 7, 2009, 8:11:59 PM5/7/09
to lif...@googlegroups.com
Hi,

On Fri, May 8, 2009 at 7:48 AM, Miles Sabin <mi...@milessabin.com> wrote:
> The point is that this is all of our problem ... I can help with
> generic Scala IDE problems, but Lift + Maven + GAE plugin stuff is not
> in my purview.

As for "Lift + Maven + GAE/J", the following may be helpful,
http://groups.google.com/group/liftweb/msg/c454004d15940996?hl=en


Sincerely,
--
Atsuhiko Yamanaka
JCraft,Inc.
1-14-20 HONCHO AOBA-KU,
SENDAI, MIYAGI 980-0014 Japan.
Tel +81-22-723-2150
+1-415-578-3454
Fax +81-22-224-8773
Skype callto://jcraft/

Reply all
Reply to author
Forward
0 new messages