Thursday Apr 10, 2008

 

Did you know there is Student Program as part of CommunityOne? Highlights include:

    Free admission. Sign up today and get the following:
  • Admittance to all general sessions, technology sessions, birds of feathers, and specially developed Java University classes.
  • Lunch each day, t-shirts, backpack, coupon for free Java Certification Class
  • Access to technology experts and the JavaOne Conference Pavilion

    Participate in additional in cool activities:
  • StartUp Camp -- tips on how to start your own business from entrepreneurs who have.
  • Choose your topic -- What do you want to share or gain?
  • Sessions on Commiunity Building, Music and Robotics
  • Make contacts at leading technology companies and start-ups in our large Technology Expo (over 125 established companies and start ups)
  • Attend the JavaOne AfterDark Party - See SMASHMOUTH perform LIVE! Meet peers and network with experts while having fun!

Update on the GlassFish Update Program (GAP).  We have been getting some interesting submissions lately. Check out the GAP Submissions page for updates. Some of the submissions include a suite of Hudson Plugin Suite, Izpack, Spnego, AS Certification Management, JSF Pub/Sub Extension for jMaki, Underworld and Greenfire.  If you wish, we can try to assign you a mentor who is a subject matter expert.

Also, Sun Campus Ambassadors are now eligible provided that the work for the GAP submission is unrelated to the work that they are doing for Sun as part of the Campus Ambassador Program.  See this Aquarium post for details.

Looking forward to receiving your entry soon.
 

Friday Mar 28, 2008

CommunityOne is a free and open developer conference held on May 5, 2008 at the Moscone Center in San Francisco, California.

Register today: http://developers.sun.com/events/communityone

Benefit from the innovation of dozens of free and open source communities spanning the open source stack and powering the Internet. In one jam-packed day you will find sessions on everything you need to
advance your skills, create a next generation infrastructure and develop compelling web experiences.

Choose from 70+ sessions on:

  • Scripting and RIAs: PHP, AJAX, Python/Jython, Ruby/JRuby, Javascript, JavaFX, jMaki, and more

  • Web 2.0 Applications: Social Networks, Mashups, and Web Services

  • Databases: MySQL, PostrgeSQL, and Java DB

  • Tools: NetBeans, Eclipse, Subversion, and Others

  • Web Scale Computing: HPC, SaaS, Utility/Cloud, Open SSO, and Project Darkstar

  • Operating Systems: OpenSolaris and Linux Distributions

  • Web and Application Servers: GlassFish, Apache HTTP, and JBoss

  • Chip Design: OpenSPARC

  • Projects and Strategy: FOSS principles, music, robotics,

  • OpenOffice.org, ODF, OpenDS, OpenJDK, Mobile & Embedded, and more

  • Select Your Own Topic: RedMonk Unconference

  • Startup Best Practices: Startup Camp (May 4-5)

For the full conference curriculum and session abstracts, visit:
http://www.cplan.com/sun/communityone2008/cc

Plus experience the latest in Java technology.

As a CommunityOne attendee, you will also gain complimentary access to the 2008 JavaOne Conference general sessions and Pavilion on Tuesday, May 6.

*********************
DAY AT A GLANCE:
General Session: 9:30 am - 10:45 am
Technical Sessions: 11:00 am - 6:00 pm
Community Reception: 6:00 pm - 7:30 pm
*********************

Registration is complimentary, but space is limited. Save your spot today:
http://developers.sun.com/events/communityone

Content may change. Change is good.
CommunityOne is sponsored by Sun Microsystems

Thursday Feb 28, 2008

For those interested in migrating from JBoss or Webshere to GlassFish, see the Migrating To GlassFish wiki page.

Wednesday Feb 27, 2008

 Good suggestions on 3 Simple Steps for a Successful GlassFish Deployment by Arun Gupta.

 

Note: another interesting article on migrating a basic app from WebSphere to GlassFish Migrating WebSphere BasicCalculator example to GlassFish by Sekhar Vajjhala.

Friday Feb 15, 2008

There is new version of the GlassFish v3 gem, v0.1.1,  released at RubyForge. See Pramod Gopinath's blog for details. Main details of this release include:

1. The name of the gem is being changed from GlassFish to glassfish. The rails naming convention for the gems is with all lower case or with names that contain underscore.

2. Support for the applications to be deployed at the Root Context ("/") of the server. The Webrick and Mongrel servers deploy the application to the root context by default.

3. Change the default port the server to be 3000 from 8080. Port 8080 has been the default http port of the GlassFish application server, but since we are targetting the Ruby on Rails market with this space, it is better to have the http port set to 3000. At this stage I have also changed the SSL port from the GlassFish default of 8181 to 3131 and the admin default port of 4848 to be 3838.

4. Provide command arguments to the script to specify the number of runtime to be created. In v0.1.0 of the gem one could specify the number of runtimes if it was passed in as a specified as a java system property. With this version one could use the command - jruby -S glassfish_rails mephisto -n 2
to create 2 rails instance.

5. Create instances of rails in parallel. This would speed up the startup of the v3 gem
 

Monday Feb 04, 2008

The multi-lingual (ML) version of the GlassFish v2 UR1is released today. It supports 7 languages: Japanese, Simplified Chinese, Traditional Chinese, Korean, French, German and Spanish. You can download it from GlassFish Download Page The ML binary is placed right below the English binary for each platform and labeled with (Multilingual).

See Ming Dong's blog for details. 

Tuesday Jan 29, 2008

Today, the GlassFish Community introduced the GlassFish Awards Program (GAP).  This program has a cool $175,000 in prizes for bug reports, code, documentation, blue prints, courseware, portals, user groups and other contributions. The overarching goal is to grow the GlassFish Community in size, quality and innovation.  See this blog entry in the Aquarium for details:

http://blogs.sun.com/theaquarium/entry/glassfish_awards_program_press_release

The GAP Main Page is the place to start.  There is a description of the program with links to the rules and an FAQ.

Good luck and we look forward to seeing your entries!

Paul

 

Tuesday Jan 15, 2008

Recently, I accepted the position of GlassFish Community Manager that had been open for some time.  I am excited about this new opportunity, and thought I would take a few minutes to tell you more about myself: 

I will celebrate my 10 year anniversary with Sun this coming March.  Seems hard to believe - I guess time flies when you are having fun. ;)   I have spent most of that time as a developer in various groups including the Enterprise Messaging and Integration Group and the Service Registry (SR) as part of the Java Enterprise System (JES). The SR project gave me the opportunity to wear the PM hat as well as the developer one. Recently, I have been helping Jerome D and Kohsuke K with the GF v3 build environment.

Some of my new responsibilities include:

  • Represent / coordinate with GF projects as we update the governance and rules
  • Keep GlassFish.dev.java.net and all the other sites up-to-date
  • Track requests for developer / contributors to GF
  • Track immigration projects for GF community
  • Track requests for projects that want to join the GF community
  • Track the GF-portion of the Awards/Grants Community Program
  • Help convert / integrate the GF community sites
  • Help with GlassFish Day, SunTechs, etc.
I look forward to this new role and working with everyone in the GlassFish ecosystem. Please share your thoughts on how we can work together to make it an outstanding community!

Well, it's been a few weeks since my last blog entry.  I thought I should take a few minutes to say that I am pleased (so far) with the hgsvn conversion tool.  I have been able to convert the GlassFish v3 svn repo to hg.  More than that, I was able to split it into the following modules:

  • admin
  • api
  • build
  • common
  • core
  • distributions
  • ejb
  • extras
  • web

This supports the v3 modularization strategy.  See the v3 Workspace wiki page for details.

 Also, this Converting the Repos page was very helpful in learning how to use the hgsvn tool.  For those of you who have not had the pleasure (with sarcasm) of doing a conversion to hg, the other existing tools, such as Tailor and hg convert, have not performed well.  Mainly, I believe to their immaturity.  With this context, it is easier to understand why I am so pleased with this result.  Nonetheless, I am being cautious.  I have asked some folks at Sun to look at the silo hg repos to see if they are ok.  At some point, the GF team will be able to make these public.  Look for another Brown Bag on hg at some point in the next few months.

Thursday Nov 08, 2007

 The genesis for this new maven2 plugin grew out of the work my team mate, Kohsuke, has been doing in building release distro files for glassfish v3.  He found that the maven-assembly-plugin was too inflexible to handle the complex set of tasks needed to create the glassfish nucleus, pe and other distribution bundle files.  The assembly plugin tries to recreate what Ant already does well: zipping and unzipping files, moving files around, doing token replacement and so on.  In other words, task-intensive requests. Also, the assembly plugin requires a declarative approach that ends up producing a large, single file of instructions. This can be harder to sustain than a modular collection of Ant build.xml files.

Instead of this approach, we considered using maven as an organizing framework that delegates all the subtasks to one or more Ant targets.  Now, there is already a maven-antrun-plugin available, but it did not have all the features we needed:

  1. The plugin must have the ability to expose an API to an Ant task for resolving artifact dependencies.
  2. The plugin must also expose to resolve all artifact dependencies, including transitive ones.
  3. It must also be able to resolve dependency using just the artifactId.
  4. It must also be able to filter resolved dependencies.

The first two requirements enable an Ant task class to obtain a reference to an artifact.  The third requirement means that the majority of the metadata to uniquely identify an artifact is in the pom.xml file.  This minimizes redundant data that is needed in the Ant's build.xml file.  These requirements were implemented in a maven-antrun-extended-plugin.

An example will help illustrate these ideas.  Look at this line in the gfsvn/v3/distributions/nucleus-base/build.xml file:

        <resolveArtifact artifactId="javadb" property="javadb.jar"/>

The task is basically asking "get me the artifact with id 'javadb' and store it as an Ant property with name javadb.jar".  Under the covers, the ResolveArtifactTask class obtains a reference an ArtifactResolverWrapper class from the maven-antrun-extended-plugin using a ThreadLocal variable.  The ResolveArtifactTask class then passes the artifactId to the Wrapper which resolves the dependency by reading the pom.xml file and by then using a maven ArtifactResolver.  If no unique artifact is found, an IOException is thrown by the Wrapper.  The ResolveArtifactTask then saves the artifact's file path as an Ant property. This property can then be used by other Ant tasks such as:
 
        <unjar src="${javadb.jar}" dest="target"/>

There is also a second Ant task that is not currently used.  Use case: let's say you need to find all dependencies, including transient ones, and save them in an Ant data structure for processing by other Ant tasks. Let's also say that you need to find only these artifacts that have packaging type "hk2-jar".  The following set of tags will accomplish this:

         <resolveAll artifactId="web-connector" pathId="artifactPath">
            <packaging is="hk2-jar"/>
        </resolveAll>


Since the above task has not yet been used, more testing is needed. Nonetheless, consider this a start at understanding its usage.

Well, that's it for an introduction.  I do realize that this is not the 'standard' way of assembling a distro file using maven.  So, consider this project as an alternative approach.  Please try it and let me know what you think.

Until next time...

Wednesday Nov 07, 2007

Greetings.

After some hesitating, I have decided to start my web log. First, a quick bio: I have been at Sun for about nine years now. I am currently a staff engineer working on diverse projects such as enterprise messaging, Sun Service Registry and now Glassfish v3. I currently live and work in Folsom, CA, and regularly commute down to Santa Clara to collaborate with the v3 team.

Initially, the Sun side of this blog will focus on Glassfish v3 with an emphasis on the workspace and build environment. My current work interests include learning about how to deliver quality software on schedule and within budget. I plan to read and share content on managing projects, designing robust SPIs, testing strategies and software engineering best practices. I will also share what I know about Maven 2, svn and hg. The personal side will cover almost anything that interests me that day, and may include links to videos on Youtube.com, books, sports, science articles and whatnot.

Well, I guess that's it for now. Blog on...

This blog copyright 2009 by Paul Sterk