GrantProjectsStatus JavaSpacesReviewAndFinalSuggestions

NetBeans Innovators Grant - JavaSpaces - Review and Final Suggestions

Reviewed by Wade Chandler July 28, 2008

This is a review of the NetBeans Innovators Grant - JavaSpaces project. This is from evaluating the project against the projects grant submission. The goal is to determine how complete the project is, what is or isn't lacking or could be added or supported in the future as would be required to obtain a Silver or Gold grant extension, and to provide feedback to the project developer(s) to help complete the project.

I have thus far tested all things on Windows XP Service Pack 2. I used the latest zip archive with modules for NB 6.5m1 for testing and review. This archive I'm using is located at: http://students.mimuw.edu.pl/md209461/javaspaces-netbeans/updates/updates_nb6.5m1_28-07-2008.zip

General Comments on logical pieces from a users perspective

Project Creation and Project Templates

I think there really needs to be the ability to create an empty project, and this template be available under 'New Project|JavaSpaces'. This wouldn't include the example code. This may be overkill perhaps if the sole purpose of the module is to only ever be a beginners introduction tool or learning tool though.

Entry Editor

I really like the different views of the entry editor. I think the Java editor side needs some minimal work however. For instance, I added a method to a PersonEntry class to be able to print a person as a String. I accidentally had the line:

   sb.append('Person[');

where sb is a StringBuffer. The rest of the project facilities which which put exclamation points on files with errors new it had an error, and thus had the red exclamation mark. The Entry Java editor did not show any red, and instead showed a green square in the top right. Compilation of course failed and pointed out my mistake where I had accidentally typed the single quote.

Also, it appears many of the refactoring options are disabled such as encapsulate fields. Encapsulate fields would seem slightly important as one may want an Entry to also be a JavaBean. Maybe some how you could override the menu items text to also have extra text which alerts the user to only use public access to the field?

I get that JavaSpaces dictates public fields for JavaSpaces entries, and this means that those fields are already accessible, but if use in the context of a JavaBeans container, those fields will most likely need to be accessed as properties even though they are public. Plus, being accessed as properties using encapsulation allows for checks and other things to be put in place.

It would also be nice if the field editors allowed the user to check a check box and have the JavaBean properties setters/getters created or remove along with the given operation.

JavaSpaces Server/Blitz

The server seems to run, but it can not be accessed. Spaces seemingly can not be created using the actions on the Blitz server under the NetBeans Services window. Without spaces being able to be created or the Blitz server being able to be connected to there seems to be no way to quickly run the JavaSpaces classes which have a main method. While running the Blitz server it outputs: Jul 29, 2008 7:20:43 PM com.sun.jini.reggie.RegistrarImpl init INFO: started Reggie: b955a36c-afad-42b6-ac5d-ebf777a0ae88, [[ | ]], jini://169.254.90.234/

and this IP address is not my IP address, so I'm not sure if this is the issue or not.

Future Based Comments

  1. I think it would be nice to have some kind of a template class such as '...|New File|JavaSpaces|JavaSpaces Application' or maybe something along the lines '...|New File|JavaSpaces|JavaSpaces Access' which could have an editor which helps the user use the different JavaSpaces annotations or perhaps some different JavaSpaces code patterns to make it a more advanced editor. Something generally along those lines anyways.
  2. It would be nice to have some type of a JINI module along with the JavaSpaces module which makes using them both more easy. Full blown Jini and JavaSpaces support would be a good extension from this module/module set.

Comments on the sources and project

I tried to build the project by getting the sources from its repository. When I tried to run the project inside NB 6.5m1 from built sources I had issues with different modules versions, so I never could get it going from the sources. I used the latest NB 6.5m1 zip archive of the modules to test.

I noticed too the sources packages are 'pl.edu.mimuw.md209461.*' which I would have preferred 'org.netbeans.javaspaces' or some other org.netbeans. codename type package name. This isn't that big of a deal considering other projects did something similar, but these projects are supposed to be contributions to the NetBeans community which uses the high level code name org.netbeans overall, but this isn't the most important aspect of the grant projects.

Comments based on grant submission specification

1. Annotations

There are Java 5.0 annotations provided. I would have liked to have seen the package name be something along the lines of org.netbeans.javaspaces.annotations or org.netbeans.somecodename versus pl.edu.mimuw.md209461.annotation. This would make things more easily merged into the accepted NB community name space as one of the goals of the NB grant projects is to provide NetBeans community provided NetBeans contributions.

2. Blitz Server

The server is provided. I had an issue with being able to create spaces inside it using the provided interface however. I am not sure if this has to do with IP address binding or what exactly. I was expecting to see some form of a configuration panel similar to that of Tomcat when clicking on properties, but instead I only see the name of the server. This is the first place I looked when it seemed the IP address being used by the server may some how be wrong. Also, there were two 'Properties' popup menu entries for the 'Bundled Blitz' service hook under 'Services|Servers'.

3. Entry Editor

The entry editor definitely seems "mostly" complete. I just say mostly because of the issues I listed above in the user comments section. Definitely more of the Java editors hints and error messages some how need to be used. I'm not sure how this is currently implemented, so at the moment I can't offer more insight and advice on how to fix the issues.

4. Entries View

I can tell there is an entries view and that it uses a tree table. The only way I can see this is that I can go under the 'Bundled Blitz' server node and right click on the 'Running JavaSpaces' node and choose to 'Create JavaSpace'. I can type in a name and it will create the nodes while it waits on the Blitz server to actually create the space. Then, after the timeout expires, receives an error that the space could not be created or connected to. However, until I receive the error that the space could not be created and before the timeout expires, I can click on the newly created space, right click on it, and choose to 'Show Entries'. I won't be able to say this works however until I can resolve my Blitz issue.

5. Template Project

I definitely have a template project which I may use under 'Categories|Samples|JavaSpaces'. This seems to be working correctly for the most part. I noticed that the Entry template seems to have some errors.

  1. When I click 'File|New File...|JavaSpaces|Empty JavaSpaces Entry File', I am asked for a file name. In Java, there must be a public class in every .java file with the same name as the file. The created Entry or .java file should be named the same as this entered value, and it is, but the class name is simply 'Class' when it should be changed to the same name as the file name. Thus, if I name the file 'Person', the class inside which implements Entry should also be 'Person'
  2. The constructor will also be named 'Class' versus the file name.
  3. When I create a new Entry class using the short cut for a new entry file, the package name is surrounded by "'s. For instance, in the projects created by the template, there is a package 'hello'. When I click on the hello folder and create an entry class there. The package line in the file will be set to
package "hello"; instead of
  package hello;
  1. All newly created Entry classes have these fields defined
   public String a;
   public Integer b;
   public java.util.Set c;
. This isn't so much an error, but the user most likely always will rename one and delete the others or will delete them all and make their own, so those fields could probably just always be left out.

6. Debugger

I can't get this to work as I can't get the Blitz server to be able to be connected and spaces accessed or created, so currently this seems to be there, but I can not confirm it works.

6a. Replay Mechanism

Since I can not get the server to run spaces and be allowed to be connected to, then I can't confirm this functionality.

6b. Select Entry Mechanism

I'm not sure how to confirm this. I need more input from Magdalena.

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo