Posted on 2008-05-13 14:42:19.0 by Karsten Wade
[ View original post ]
The first morning of JavaOne
was a great serendipitous event. How often does something fall into place like this: I saw Barton George
, who looks after Sun’s relationships with Linux communities, and we decided to cook up a podcast about OpenJDK 6
in Fedora 9
. As we walked to the recording room, I commented that it would be great if we could get Tom Fitzsimmons
, too. Not two beats later, we rounded a corner, and there stood Tom with Patrick Macdonald. Of course they were available and happy to record with us, and away we went.
Hear Barton (and a little bit of me) interview Tom and Patrick about the journey of OpenJDK and IcedTea
: OGG
and MP3
Patrick Macdonald, Tom Fitzsimmons (kneeling), and Karsten Wade. Photo: Barton George from this post
The discussion covered the history of making a 100% free and open source runtime in Fedora from the initial Java open source code, which itself was 96% of a complete and self-building JDK. This remaining 4% was filled with components from GNU Classpath
by the IcedTea team. The term “IcedTea” came from the package name used because, at that time, Fedora didn’t have a trademark license to use “OpenJDK”. Of the GNU Classpath code used, some if it ended up completing the circle to be included in OpenJDK. Based on relationships made at FOSDEM 2007, the team from Fedora/Red Hat were able to work with folks from Sun and other places to do work in the community in advance of resolving the remaining 4%, and do it in a way that could be more easily folded into OpenJDK.
What is riveting about this story is the speed and quality of the outcome that is clearly due to the open source methodology used. By opening all the code that they could, Sun made it possible for others to fill the gaps Sun could not immediately fill. By working closely throughout that process, all of the open source code was used and tested in the community. Sun had time to choose the right license so the code could be merged. If Sun had waited until they could open all the code, we would have lost an entire year of development (at least.)
Now that OpenJDK 6 is available in EPEL 5 for Red Hat Enterprise Linux 5
, it is only a matter of time before it gets certified to appear in an update. This is being worked on by Keith Seitz and Mark Wielaard
, who have “not many” test suites to complete to be ready to pass the TCK. Once that is done, the implementation can be called “Java compliant”, which is an important step to being ready for an Enterprise Linux 5.x update.
Listen to the audio to get all the details, and check out Barton’s blog entry
for his viewpoint.
Posted on 2008-05-13 11:03:11.0 by Pierre Fricke
[ View original post ]
Burr Sutter presents a great
JBoss Enterprise SOA Platform Deep Dive Webinar
!
This is the recording from April, 2008 with lots of detailed information and demos.
Posted on 2008-05-13 10:19:55.0 by Pierre Fricke
[ View original post ]
Our partners at
ActiveEndpoints
have created an interesting and educational
demo
showing how to use their ActiveVOS (BPEL) with
JBoss Enterprise SOA Platform
to solve business process challenges and improve business execution.
Posted on 2008-05-13 08:29:00.0 by noreply@blogger.com (Thomas Heute)
[ View original post ]
The latest minor release of JBoss Portal has just been released.
This is a bug fix release, here is the full
release note.
Grab it while it's hot
and don't hesitate to report issues
in the forums
.
Thanks for the feedbacks we got on previous releases !
Posted on 2008-05-12 20:24:35.0 by Karsten Wade
[ View original post ]
At the JBoss booth at JavaOne 2008, I spoke with RichFaces developer Alexander Smirnov (OGG
, MP3
.) Alexander is the founder of the Ajax4jsf project, which he started as a personal side effort. It grew out of his interest in JSF and was originally run as a stand alone, self-hosted project.
As he developed Ajax4jsf, Alexander began working with the MyFaces community, and started communicating more with the larger JSF community. He moved the project to SourceForge at the suggestion of RichFaces lead developer Sergey Smirnov (no relation.) Exadel
began developing the RichFaces
JSF components library and Alexander joined the project as a framework background developer.
At the time it moved to java.net, Ajax4jsf had grown more useful when integrated with the RichFaces component library. RichFaces, however, was still not open source. The combined projects came to the attention of JBoss, which contracted with Exadel to open source both projects as JBoss projects. These were recently combined into a single project under the RichFaces name, available through JBoss.org
. (RichFaces is combined with the JBoss Tools
Eclipse-based developer environment to make up the JBoss Developer Studio
subscription offering.)
Current activity for the RichFaces project includes a focus on building RichFaces functionality within JBoss Portlet Bridge
. JBoss Portlet Bridge implements JSR-301 to provide support for not only JSF running in a portal, but also Seam and RichFaces.
Joining forces with JBoss has brought significantly more usage, ten times or more in terms of downloads. In particular, Alexander says there is an obvious increase in forum questions and discussions. In terms of attracting contributors, there are currently very few code contributions from the community outside of Exadel and JBoss. Alexander and Sergey describe the development process for the RichFaces team as being structured with a well-oiled process, which creates a higher barrier of entry for people outside of the team. As early ways to bring in external contributors, there are current needs for testing, defining future requirements, and requesting features and enhancements.
For the future roadmap of RichFaces, Alexander says that the next step is toward semantic web technologies.
Posted on 2008-05-12 19:06:23.0 by JBoss.ORG Team
[ View original post ]
Enclosure:http://www.jboss.org/files/jbosslabs/podcasts/Alexander_Smirnov-JBoss_RichFaces-JavaOne-2008.ogg
Ajax4jsf
project lead Alexander Smirnov spends a few minutes with
JBoss.org
/
Dev Fu
to discuss the history and future of Ajax4jsf.
MP3
format is also available.
Posted on 2008-05-12 18:54:42.0 by JBoss.ORG Team
[ View original post ]
Enclosure:http://www.jboss.org/files/jbosslabs/podcasts/Alexander_Smirnov-JBoss_RichFaces-JavaOne-2008.mp3
Ajax4jsf
project lead Alexander Smirnov spends a few minutes with
JBoss.org
/
Dev Fu
to discuss the history and future of Ajax4jsf.
OGG
format is also available.
Posted on 2008-05-09 15:56:00.0 by Heiko W. Rupp
[ View original post ]
In the
last post
I showed the general architecture of
RHQ
and where plugins live. So we can now start writing one.
The scenario revisited
Our plugin should be able to connect to a http server, issue a HEAD request on the base url (e.g.
http://localhost/) and return the http return code as
trait
and the time it took as
numeric
data (see below).
To make things easier for the purpose of this series of postings, we will have the agent running on the machine the RHQ server lives on and we will just try to get data from the Servers http connector at port 7080 (the default port).
What do we need ?
In order to write our plugin we basically need three things
- A plugin descriptor. This contains metadata about the plugin: which metrics should be collected, what operations does it support etc.
- A discovery component. This part discovers the actual resource(s) and delivers them to the Inventory.
- A plugin component. This component executes operations and gathers the measurement data etc.
So lets have a look into those three parts.
Plugin descriptor
The plugin descriptor is described by an XML Schema that you can find
in svn
. The basic structure is as follows:
(Click for pdf
version)
The desciptor consists of a few sections. First you can express dependencies to other plugins. This is allows reuse of existing plugins and is useful when you e.g. want to write a plugin that itself needs the JMX plugin, so that it can do its work.
The next are a row of platform/server/service sections. Each of those can have the same (XML-)content as the platform that is shown as an example - they are all of the same (XML-) data type (as a platform/server/service) as each is a kind of resource type, as you already know from the first part.
Example:
<service name="CheckHttp">
<metric property="responseTime"
description="How long did it take to connect"
displayType="Summary"
displayName="Time to get the response"
units="ms"
/>
</service>
The name of a <service> and the other ResourceTypes (platform, server) must be unique for a plugin. So it is not allowed to have two services named "CheckHttp" within our example plugin, but you could write a Tomcat5 and a separate Tomcat6 plugin that both have a service with the name "connector".
For the start we are especially interested in one of the sub elements:
metric
for our example plugin, so I will describe this here in a little more detail. For all other tags refer to the XML Schema that has a lot of comments.
Metric
This is a simple element with a bunch of attributes and no child tags. You have already seen an example above.
Attributes of it are:
property: name of this metric. Can be obtained in the code via getName()
- description: A human readable description of the metric
- displayName: The name that gets displayed
- dataType: Type of metric (numeric / trait /...)
- units: The measurement units for numerical dataType
- displayType: if set to "summary", the metric will show at the indicator charts and collected by default
- defaultOn: Shall this metric collected by default
- measurementType: what characteristics do the numerical values have (trends up, trends down, dynamic). The system will for trends* metrics, automatically create additional per minute metrics.
For the sample plugin we will use a metric with numerical dataType for the response time and a dataType of trait for the Status code.
Trait
s are meant to be data values that only rarely change like OS version, IP Address of an ethernet interface or the hostname. RHQ is intelligent enough to only store changed traits to conserve space.
Discovery component
The discovery component will be called by the InventoryManager in the agent to discover resources. This can be done by a process table scan (e.g. for the Postgres plugin) or by any other means (if your plugin wants to look for JMX-based resources, then it can just query the MBeanServer. Well, actually there is a JMX-Plugin that can do that for you in clever ways).
The most important thing here is that the Discovery component must
return the same unique key each time for the same resource
.
The DiscoveryComponent needs to implement
org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent
and you need to implement
discoverResources()
.
The usual code block that you will see in
discoverResources()
is:
Set<DiscoveredResourceDetails> result = new HashSet<DiscoveredResourceDetails>();
for ( ... ) {
...
DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
context.getResourceType(),
uniqueResourceKey,
resourceName,
resourceVersion,
description,
configuration, // can be null if no confi
processInfo);
result.add(detail);
}
return result;
Basically the context passed in gives you a lot of information, that you can use to discover the resource and create a
DiscoveredResourceDetails
object per discovered resource. The list of result objects is then returned to the caller. Simple - eh?
Plugin component
The plugin component is the part of the plugin that does the work after the discovery has finished.
For each of the "basic functions" in the plugin descriptor, it needs to implement an appropriate
Facet
:
| Descriptor element
|
Facet
|
| <metric> |
MeasurementFacet |
| <operation> |
OperationFacet |
| .. |
... |
Each
Facet
has its own methods to implement. In the case of the MeasurementFacet this is e.g.
getValues(MeasurementReport report, Set metrics)
. The report passed in is where you add your results. The metrics is a list of metrics for which data should be gathered. This can be all ouf your definied <metric>s at once or only a few of them - this depends on the schedules the user configured in the GUI.
Ok, that's it for now. In the next post we will do some coding and get our plugin to work.
Technorati Tags:
Java
, JBoss
, RHQ
Posted on 2008-05-08 11:55:56.0 by sharps
[ View original post ]
There was a time when when the main selling point of (Free) Open Source was cost and consumers of the technology we’re willing to make compromises in other areas. I think that’s changed and Enterprise adoption is one of the causes. If your are responsible for maintaining your organization’s business crtitcal infrastructure - you’re not going to cut anyone any slack - not Free; not Open Source.
Some news from Gartner and Forrester today pushed the bar for OSS a little higher. First the report from Forrester
($$) - based on a pretty exhaustive survey of application server users - it’s the first report I’ve ever seen that is essentially based on Quality - not the usual speeds and feeds and feature comparison. It very clearly busts any remaining myths that OSS is a riskier proposition than conventional, proprietary software - in fact it the report’s findings are pretty clear - JBoss App Server 4.x is likely of superior quality, is able to handle demanding workloads and our ability to resolve issues is better than our competitors. Note - I also think this demonstrates the difference between the old and new models of Software - ie. where the value is about the services you provide beyond the bits; not the bits themselves.
That said - the bits have to be good as well - again nobody is giving OSS an easy passage in the enterprise and according to the latest Gartner MQ on Enterprise App Servers
($$) - our bits are damned good (or I guess technically - our vision and execution of that vision is damned good).
Hopefuly we’ll get reprint rights for the Forrester report - not only is it good for JBoss and Red Hat but I think it’s good for the whole OSS ecosystem.
Posted on 2008-05-08 07:38:00.0 by noreply@blogger.com (Julien Viet)
[ View original post ]
I have been told last night about that
announcement
: In a few words, Sun and Liferay are collaborating on a common set of components that will be reused by both platforms.
To me it's a perfect admission of two facts: Liferay failed at implement new technologies such as JSR286 and Sun failed at creating an ubiquitous and visible version of their portal.
Liferay benefits from Sun technologies that they were not able to implement due to the huge legacy of their code base. Brian admitted it publicly in a
post
("we are not smart enough, we don't have enough man power, and we don't have enough energy to build an innovative product").
Sun on its side distributes a rebranded version of Liferay and kills its existing portal. Why ? Sun open portal is too tied to the operational environment and their identity management product (read here big fat momma). Sun realized that they wouldn't be able to increasing their product visibility while making it more adaptable to more diverse environments.
The real question on everyone's mind though is: why is Sun moving in this direction now? in my opinion most of the benefit goes to Liferay, so the hypothesis that Sun could acquire Liferay seems very valid to me even if the announcement claims it won't happen ("No, there are no plans for an acquisition.") and Sun does not yet have vested interests in Liferay. We can see this as a last attempt from Sun to revitalize their portal offering by trying to quickly leverage Liferay's community. Will this work for either side of this partnership? Only time will tell...
At least I am not wondering anymore about why our proposals submitted to JavaOne have been refused :-)