Sunday, September 13, 2009

And yet it moves! -- Galileo Galilei

Today article will be about migration from Eclipse Ganymede to Eclipse Galileo with the aktiff project. If you remember, there was problem with Google plug-in compatibility and newest release of Eclipse IDE. The problem is solved now and developers can change their IDE.
Migration process is quite easy:
  • Download Eclipse Galileo from http://www.eclipse.org/galileo/, put it in some appropriate location on your filesystem and run it;
  • Install Google plug-in using Update Manager from http://dl.google.com/eclipse/plugin/3.5;
  • Install Advanced Mylyn Web Connector using Update Manager from http://download.eclipse.org/tools/mylyn/update/incubator;
  • Restart the Eclipse;
  • Switch your workspace to one where you use to use older Eclipse IDE or set up SVN and checkout whole project. (I personally recommend you to just switch the workspace, because settings of workspace and projects will persist. Otherwise you have to set up SVN, Mylyn and aktiff project - everything is the same as described in previous articles.)
Now you can enjoy asserted faster IDE with better functionality. And I provide also screenshot of fully functional application:


Tuesday, August 4, 2009

Google Eclipse Plug-in is up-to-date

Google Eclipse Plug-in LogoIt's time to celebrate. Google developers were again very agile and just few days after official release of Eclipse Galileo (3.5) offers new version of Google Eclipse Plug-in. It means that aktiff developers should upgrade their IDEs because new version of Eclipse comes with new useful functionality, better performance and smaller memory footprint. As you can read it in 'Beginnings are hard' post we have to use not the latest version of Eclipse IDE (Ganymede) and Google plug-in is essential when developing GWT based applications.

The link which should be putted into Eclipse Update Manager is:

http://dl.google.com/eclipse/plugin/3.5

You can read more information about installation here. Our developer Robert will prepare post about migration with aktiff development to Eclipse Galileo. Stay tuned and up-to-date ;).

Monday, July 20, 2009

One Mylyn to rule tasks all

The issue tracker of Google Code hosting page is cool thing. But when I'm drowned in source code barely will I check the web UI for new issues. And here it comes - famous Mylyn as Eclipse task manager subsytem. I was sure that it has to be way how to connect Google Code issue tracker with Mylyn in my IDE. First searches point to discussions with please implement this feature topics. I started to be sceptic. Later I found Alex Ruiz's post with instructions to enable mentioned functionality. I have small problems a than I found event better tutorial for this by Alex Blewitt and it looks more improved. Thanks both you guys. Now I will rewrite settings for aktiff project here:

First of all download the newest version of Mylyn. Embedded version in Eclipse Ganymede isn't apparently enough. Go to Eclipse update manager to tab Installed Software and find 8 packages of Mylyn subsystem (all of them begins with word Mylyn). Highlight them all using Shift key and press Update button. The newest version of Mylyn in time of writing this post was 3.2.0. Accept and restart as always.

Second thing to do is to download Advanced Mylyn Web Connector which is available from Mylyn incubator. Go to Eclipse update manager and add http://download.eclipse.org/tools/mylyn/update/incubator site. It is enough to download just this one component. Accept and restart Eclipse application.

Open the Task Repositories view (by default it is located also in SVN perspective). Select Add Task Repository and select Web Template (Advanced) option in the wizard window. In next window it is necessary provide following data:

Server:
http://code.google.com/p/aktiff/issues
Label:
aktiff
User ID:
[your Google Account name]
Password:
[your generated Google Code password] - you can find it here
Parameter:
search (no value)
Parameter:
can (value 2)
Task URL:
${serverUrl}/detail?id=
New Task URL:
${serverUrl}/entry
Query Request URL:${serverUrl}/csv?can=${can}&colspec=ID+Status+Type+Owner+Summary&q=${search}Query Pattern:^"({Id}[0-9]+?)","({Status}.*?)","({Type}.*?)","({Owner}.*?)","({Description}.*?)"$


Click the Finish button. Then you will be asked if you want create new query for given task repository. You can change default values of given parameters (if not you will qyery all opened task of aktiff project):

Possible values for can parameter:
  1. All issues
  2. Open issues
  3. Open and owned by me
  4. Open and reported by me
  5. Open and starred by me
  6. New issues
  7. Issues to verify

Possible values for search paramater:

summary:
description:
comment:
Text search of just those sections
reporter:
cc:
commentby:
owner:
The google account userid, or the special value me as a synonym for yourself
status:
Corresponds to the status labels, e.g.
  • New
  • Accepted
  • Started
  • Fixed
  • Verified
  • Invalid
  • Duplicate
  • WontFix
  • Done
is:open
isnot:openShort-hand operators for status types; note that can>1 effectively have is:openlabel:
Searches for a label with the given tag
tag:value
Searches for a label tag-value

The tag:value is especially handy, because you can add any kind of labels you want to a project and can search on them easily. For example, priority:medium and type:enhancement are both variants of label:priority-medium and label:type-enhancement respectively.

Note that you can combine searches; they form a logical ‘and’ together (so owner:me priority:high just gives my high priority items). If you want to have either me tasks or high priority ones, you can use owner:me OR priority:high. For some reason, the upper case of OR is important.



Sunday, July 19, 2009

Beginnings are hard

This post was stimulated by batch of small problems with settings things up. Not everything is decided already - for example used technologies. I just wanted to make research about available frameworks. In fact I'm mainly Java programmer. But web applications are the future in my eyes. And this is all the time about (X)HTML and JavaScript or if you want about incompatibility between particular browsers. There are always small differences which are driving me mad when I'm trying to center something or move few pixels there or there. Of course I'm not only one who want to develop application logic and not to play with details and differences between FF and IE and Safari and...! And here comes several frameworks which should make this dirty work for you. There are special CSS files or JavaScript libraries which can unify the behavior of browsers. For example I'm quite big fan of JQuery framework and I wanted to use this technology in aktiff project.

I dig out another framework later during necessary searches for start open source project. I'm talking about Google Web Toolkit (GWT) which is framework allowing you to write web application's UI in the Java programming language and embedded tools will later parse this code and will create HTML/JavaScript build of client side - with special version for every browser. So no need to be worried about browser differences - guys from Google make it for me already. This is huge thing for me because Java is my favorite environment and it should save so development time. So I'm excited enough to try this technology right now!
And here we are, first complications. I don't have experiences with SVN repositories because in our company we're still using old-fashioned CVS system. Okay, the Eclipse IDE doesn't have SVN support bundled inside by default. No problem - installation in new versions is question of putting correct URL and pressing OK button...
One hour later: No it's not so easy. I really should read instructions around the install URLs. After installation of 3 plg-ins I'm recommending Subclipse plug-in directly from Tigris. It's more user friendly in my opinion than Subversive plug-in. Additionaly version for new Eclipse Galileo is in incubation state. (Later in the story: the choice of brand new IDE is not so smart as it looks.)

So this is small tutorial of installation Subclipse plug-in:
Add the http://subclipse.tigris.org/update_1.6.x site to your installation manager and refresh the content. The everything what is there: SVNKit library, JNA library and whole Subclipse with all optional modules. There is no reason to save disc space on this - as I did in my first tryings. SVN plug-ins need also special drivers and other stuff to work normally. Dependences will be resolved automatically. Accept the license and click Finish button. Restart of Eclipse is required.
Open the SVN Repository Exploring perspective after restart. Open the add resource location wizard in SVN Repositiories view (in toolbar or using context menu) and add google hosting SVN url. But which one? Maybe there were some problems today with Google's SVN or something but their instructions didn't work for me at all:
https://aktiff.googlecode.com/svn/trunk/ aktiff --username [user_name] will cause Bad URL passed to RA layer svn error. So I put there just https://aktiff.googlecode.com/svn/trunk/ which looks like working.

Second thing to do is Google plug-in for Eclipse which is helping with development of GWT and GAE (Google App Engine) applications. This point cause me another complication. The plug-in is compatible with Eclipse Europa and Ganymede for now. Damn, my experiments with SVN under Eclipse Galileo was worthless. No problem, I downloaded Eclipse Ganymede (version for J2EE programmers of course) and install Subclipse plug-in again (with the same limitations as before). Later the Google plug-in and this is small tutorial to it:
Add http://dl.google.com/eclipse/plugin/3.4 site to your install manager, refresh and take rather everything again. Accept the license, wait and allow Eclipse to restart itself. The plug-in was successfully installed. I ran the New Web Application wizard from Google and create new project. The structure and basic files were created and I assign this project to SVN repository. Everything went well, but it's strange that i didn't need user name and password when I was committing changes. (On the other hand, during installation and connecting to SVN I was prompted once to provide my user name and password - probably it is remembered somewhere on my machine.)

I took longer than I expected (it's ALWAYS like this) but in the end it works. And I'm glad. Check-outing the project will be much easier for other aktiff participants. Later I will create detailed step-to-step guide for co-programmers in project's wiki.