Links

Metrics: library to measure behavior of critical components

Metrics is a Java library which gives you unparalleled insight into what your code does in production. Developed by Yammer to instrument their JVM-based backend services, Metrics provides a powerful toolkit of ways to measure the behavior of critical components in your production environment. With modules for common libraries like Guice, Jetty, Log4j, Apache HttpClient, Ehcache, Logback and reporting backends like Ganglia and Graphite, Metrics provides you with full-stack visibility.

Homepage:
http://metrics.codahale.com/

Getting started and Manual:
http://metrics.codahale.com/getting-started.html

Sourcecode:
https://github.com/codahale/metrics

Filed under  //   asl   java   jmx   library   metrics   monitoring   opensource  
Posted February 2, 2012 by email 

elasticmq: simple message queue system with SQS interface

ElasticMQ is a simple message queue system, written entirely in Scala.

Currently messages are stored either in-memory, or persisted in a database (MySQL, Postgres, H2, ...) using Squeryl.

ElasticMQ implements a subset of the SQS REST interface, providing an SQS alternative e.g. for testing purposes.

The REST server is implemented using Netty, a high-performance, asynchronous, event-driven server Java framework.

The SQS interface has been tested using the Amazon Java SDK library; see the rest-sqs-testing-amazon-java-sdk module for the testsuite.

https://github.com/adamw/elasticmq

Filed under  //   AWS   Java   SQS   Scala   message   queue  
Posted January 25, 2012 by email 

Javeleon:

Javeleon is a novel dynamic updating system that is transparent to the Java language and runs on top of a standard unmodified JVM. It allows dynamic type-safe updates of code as well as thread-safe lazy state migration, thus preserving live object instances. Javeleon is intentionally designed to mimic the traditional off-line updating scheme. Hence, binary incompatible updates can be successfully carried out if and only if the type conflict is resolved and the conflicting code has been recompiled. Otherwise, possible run-time exceptions, e.g. NoSuchMethodException, will be thrown if client code tries to invoke a removed method. It is important to notice that this will also happen if those updated classes are linked together using dynamic class-loading after a complete application restart using the off-line updating scheme. The full list of code changes achievable with Javeleon is presented below together with a comparison of other dynamic update systems.

Fgjcfghe

http://javeleon.org/

Filed under  //   agent   classloader   java   jvm   reload  
Posted January 13, 2012 by email 

Javeleon: reload agent for JVM

Reloading classes in the JVM is no where near enough to dynamically reflect all changes that a typical developer performs in nowadays development scenarios.

Javeleon comes with out-of-the-box integration for NetBeans Platform based applications. Thus, Javeleon permits seamless and immediate runtime updates to  module dependencies and metadata. Even incremental GUI development is supported with Javeleon for NetBeans!

Javeleon is a novel dynamic updating system that is transparent to the Java language and runs on top of a standard unmodified JVM. It allows dynamic type-safe updates of code as well as thread-safe lazy state migration, thus preserving live object instances. Javeleon is intentionally designed to mimic the traditional off-line updating scheme. Hence, binary incompatible updates can be successfully carried out if and only if the type conflict is resolved and the conflicting code has been recompiled. Otherwise, possible run-time exceptions, e.g. NoSuchMethodException, will be thrown if client code tries to invoke a removed method. It is important to notice that this will also happen if those updated classes are linked together using dynamic class-loading after a complete application restart using the off-line updating scheme. The full list of code changes achievable with Javeleon is presented below together with a comparison of other dynamic update systems.

http://javeleon.org

Filed under  //   agent   java   jvm   reload  
Posted September 27, 2011 by email 

node.x: JVM framework for event based, highly scalable applications

What is Node.x?

* A general purpose framework that uses an event based style for
building highly scalable applications
* Runs on the JVM.
* Everything is asynchronous.
* Embraces the style of node.js and extends it to the JVM. Think
node.js/on steroids/. Plus some.
* Polyglot. The same (or similar) API will be available in multiple
languages: Initially Ruby (JRuby), Groovy and Java and going
ahead... JavaScript (Rhino/Nashorn), Python (Jython), Clojure, Scala
etc.
* Goes with the recent developments with InvokeDynamic in Java 7 and
bets on the JVM being the future premier runtime for dynamic languages.
* Enables you to create network servers or clients incredibly easily.
* True threading. Unlike node.js, Python Twisted or Ruby EventMachine,
it has true multi-threaded scalability. No more spinning up 32
instances just to utilise the cores on your server.
* Incredibly simple concurrency model. Write your code as single
threaded like node.js, watch it scale across multiple cores (unlike
node.js)
* Understands multiple network protocols out of the box including:
TCP, SSL, UDP, HTTP, HTTPS, Websockets
* Sendfile support for writing super scalable web servers
* Will provide plugins for talking AMQP, STOMP, Redis etc
* Provides an elegant api for composing asynchronous actions together.
Glue together HTTP, AMQP, Redis or whatever in a few lines of code.


https://github.com/purplefox/node.x

Filed under  //   event   framework   groovy   java   jruby   jvm   node.js   opensource   scalable  
Posted September 20, 2011 by email 

Ripple: declarative dataflow language for the Semantic Web

Ripple is a declarative, stack-oriented dataflow language for exploring the Semantic Web and other multi-relational networks. Ripple programs resemble path expressions as in XPath and postfix-style procedures as in Forth. Every program has an RDF representation, so you can embed programs in the Web of Data as well as querying against it. This implementation is written in Java and includes an interactive command-line interpreter as well as a query API which interoperates with Sesame 2.0.

https://github.com/joshsh/ripple
http://ripple.fortytwo.net/

Filed under  //   java   json   linkeddata   opensource   rdf   semanticweb  
Posted August 18, 2011 by email 

Node.x: asynchronous, event-based server framework for the JVM similar to node.js

What is Node.x?

* A general purpose framework that uses an asynchronous event based style for building highly scalable network or file system aware applications
* Runs on the JVM.
* Everything is asynchronous.
* Embraces the style of node.js and extends it to the JVM. Think node.js on steroids. Plus some.
* Polyglot. The same (or similar) API will be available in multiple languages: Ruby, Java, Groovy, (Python?, JS?, Clojure?), etc
* Goes with the recent developments with InvokeDynamic in Java 7 and bets on the JVM being the future premier runtime for dynamic languages.
* Enables you to create network servers or clients incredibly easily.
* True threading. Unlike node.js, Python Twisted or Ruby EventMachine, it has true multi-threaded scalability. No more spinning up 32 instances just to utilise the cores on your server.
* Understands multiple protocols out of the box including: TCP, SSL, UDP, HTTP, HTTPS, Websockets, AMQP, STOMP, Redis etc
* Provides an elegant api for composing asynchronous actions together. Glue together HTTP, AMQP, Redis or whatever in a few lines of code.

https://github.com/purplefox/node.x/
http://purplefox.github.com/node.x/

Filed under  //   groovy   java   jruby   jvm   node   node.js   scala   server  
Posted July 11, 2011 by email 

Jitsi: SIP Communicator

Jitsi (previously SIP Communicator) is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, AIM/ICQ, Windows Live, Yahoo!, Bonjour and many other useful features.

Jitsi is Open Source / Free Software, and is available under the terms of the LGPL.

The application is developed (mostly) in Java and basd on OSGi.

http://www.jitsi.org/

(download)

Filed under  //   audio   calls   conference   java   linux   opensource   osgi   osx   sip   video   windows  
Posted June 29, 2011 by email 

Apache Clerezza: Semantic web + OSGi

Clerezza is a service platform based on OSGi (Open Services Gateway initiative) which provides a set of functionality for management of semantically linked data accessable through RESTful Web Services and in a secured way. Furthermore, Clerezza allows to easily develop semantic web applications by providing tools to manipulate RDF data, create RESTful Web Services and Renderlets using ScalaServerPages.

Contents are stored as triples based on W3C RDF specification. These triples are stored via Clerezza's Smart Content Binding (SCB). SCB defines a technology-agnostic layer to access and modify triple stores. It provides a java implementation of the graph data model specified by W3C RDF and functionalities to operate on that data model. SCB offers a service interface to access multiple named graphs and it can use various weighted providers to manage RDF graphs in a technology specific manner, e.g., using Jena or Sesame. It also provides for adaptors that allow an application to use various APIs (including the Jena api) to process RDF graphs. Furthermore, SCB offers a serialization and a parsing service to convert a graph into a certain representation (format) and vice versa.

http://incubator.apache.org/clerezza/

Filed under  //   apache   http   java   jena   osgi   rdf   rest   scala   semanticweb   sesame   sparql  
Posted May 31, 2011 by email 

Jetty JMX Webservice

Jetty JMX Webservice is a webapp providing a RESTful API to query JMX mbeans and invoke mbean operations without the hassle that comes with RMI. No more arguments with your firewall admin, just a single http port.

That alone might not be a killer feature, but Jetty JMX Webservice also aggregates multiple mbeans having the same ObjectName in the same JVM (e.g. jmx beans for multiple webapps) as well as from multiple jetty instances. That way you’ve a single REST api aggregating JMX mbeans for one or more jetty instances you can use to feed your favourite monitoring system for example.

http://webtide.intalio.com/2011/05/jetty-jmx-webservice/

(download)

Filed under  //   java   jetty   jmx   mbean   monitoring   webapp  
Posted May 31, 2011 by email