Bill Venners | 19 Jan 10:00
Favicon
Gravatar

ScalaTest 1.7.RC1 released

Hi All,

I have released ScalaTest 1.7.RC1 for Scala 2.8.1+ and 2.9.0+. This
should be source compatible with ScalaTest 1.5.1 and 1.6.1, so please
let me know if something breaks for you. It is not binary compatible,
so you'll need to do a clean build, but that should be all that's
required to upgrade. Please post on scalatest-users if you encounter a
problem. ScalaDoc for the 2.9.0+ variant is here:

http://www.artima.com/docs-scalatest-1.7.RC1/

This release includes the following enhancements, bug fixes,
dependency changes, and deprecations:

Enhancements:

- Added trait Inside, which lets you make assertions about values
extracted from an object via a pattern match
- Added traits OptionValues, EitherValues, and PartialFunctionValues,
which allow you to make one-liner assertions about values that
*should* exist in Options, Eithers, and PartialFunctions
- Added extra methods on MockitoSugar for new mock methods added to Mockito
- Added WrapWith annotation to enable ScalaTest to run non-Suites,
similar to JUnit's RunWith annotation
- Added trait NonImplicitAssertions, which turns off the lone implicit
conversion you get by default in a ScalaTest suite
- Made Event and Ordinal Serializable, as well as internal
implementations of Rerunner, to make it easier to run tests in a
different VM across a network
- OSGI-enabled scalatest's jar file
(Continue reading)

Josh Suereth | 20 Jan 02:03
Picon
Gravatar

Scala 2.10.0 Milestone 1

milestone release for Scala is now available. This release is cut directly from current development and is not intended for production environments, but is a great chance to try out the up and coming features for Scala 2.10.0.

Included in this release are:

  • Preliminary Reflection API
  • faster inliner
  • scaladoc improvements (Thanks docspree folks!)
  • virtualized pattern matcher
  • many more!

Expect monthly milestone released for 2.10.0 before it enters an official release cycle. Get your feedback and suggestions in early!


- The Scala Team


Note:  For those maven-repository users, it's published under org.scala-lang : scala-library : 2.10.0-RC1

Stefan Zeiger | 16 Jan 16:42
Favicon
Gravatar

JUnit interface 0.8 for sbt

I am pleased to announce releae 0.8 of junit-interface. This is an 
implementation of sbt's test interface 
<http://github.com/harrah/test-interface> for JUnit 4 which allows you 
to run JUnit <http://www.junit.org/> tests from sbt.

The complete ReadMe and the source code can be found at 
<https://github.com/szeiger/junit-interface/tree/0.8>. The binaries are 
here: 
<http://scala-tools.org/repo-releases/com/novocode/junit-interface/0.8/>.

Changes since release 0.7:

- Make use of ANSI colors for the log messages (can be turned off with 
-n option)

- Updated ReadMe which covers sbt 0.10+

anli | 14 Jan 22:49
Picon

tiscaf-0.6 - a piece of dynamics, please..

tiscaf-0.6 is released. tiscaf  [1] - is an http server written in and intended to be used with the Scala programming language.

From changelog:

2012.01.15 v.0.6 is out - towards arbitrary "dynamics". Among changes and small fixes these ones are interesting:

- HTalk.req internal object's type is now extracted to HReqData trait.
- HApp.resolve takes now this HReqData parameter instead of HReqHeaderData.
- Added new HLet's method def talkExecutor: Option[HLetExecutor] = None where trait HLetExecutor needs the only method to implement: def submit(req: HReqData, run: Runnable). This way you have arbitrary possibilities to execute handler code the way you want - instead of default execution pool using. Say, you can use some kind of events/subscriptions model/framework to implement Comet-like client-server interaction (ChatDemo with long-poll strategy is included into the source archive).

I'd want to emphasize: at all these three cases - in hApp.resolve implementation, in hTalk.req using, and (if you do) in hLet.talkExecutor overriding - you have the same HReqData information in you hands - full and ready to use request data.

[1] http://gaydenko.com/scala/tiscaf/httpd/

Lalit Pant | 9 Jan 16:30
Picon

A update on Kojo

Greetings,

There have been some interesting new developments on the Kojo front recently.

  • Pictures and some cool 2D stuff based on Staging: http://kojoenv.wordpress.com/2011/12/09/kojo-version-091211-released/
  • Collision Detection for Pictures: http://kojoenv.wordpress.com/2011/12/30/kojo-version-291211-released/
  • Combining Pictures, Animation, Collision Detection, Keyboard Interactivity, and Music within Games: http://kojoenv.wordpress.com/2012/01/09/kojo-version-080112-released/
For those who have not heard about Kojo, here's a quick description (from the Kojo page):

Kojo is a desktop application that runs on Windows, Linux, and the Mac. It is a Learning Environment - with many different features that enable play, exploration, and learning in the areas of:

  • Computer Programming
  • Math and Science
  • Systematic and Computational Thinking
  • Art, Music, and Creative Thinking
  • Computer and Internet Literacy
Kojo is written in Scala, and enables users to build the stuff mentioned above using Scala.

Feedback welcome...

Cheers,
- Lalit

::
Lalit Pant
Kojo Creator and Lead Developer

Graham Lea | 9 Jan 08:11
Gravatar

Updates to Scala/Spring/Hibernate/Maven Template Webapp

Scala-Spring-Hibernate-Maven-Webapp is a public domain GitHub project 
containing source code for kickstarting your own webapp project using 
the latest versions of Scala, Spring, Hibernate and Maven.

The following major updates have recently been committed:
* Upgrades to Scala 2.9.1, Spring 3.1.0 and Hibernate 4.0.0
* Addition of REST-ful Update and Delete examples
* Addition of validation examples using JSR-303 annotations
* Addition of automated Web Test examples using Selenium WebDriver

The project is available here:
https://github.com/GrahamLea/scala-spring-hibernate-maven-webapp

I encountered a couple of time-consuming issues during the upgrades to 
the latest versions of the frameworks and I've blogged the details of 
them here in case you're having any trouble upgrading your own projects:

http://grahamhackingscala.blogspot.com/2012/01/updates-to-scalaspringhibernatemaven.html

Kostas Kougios | 29 Dec 19:52

ScalaScriptEngine

Hi all,

	I am happy to announce scalascriptengine, a scala library that can be
used to on-the-fly compile and load scala classes from their source
files. The library can be embedded in servers and allow modified scala
code to be reloaded without the need to redeploy.

Examples and documentation can be found at the projects home page:

http://code.google.com/p/scalascriptengine/

Regards,

Kostas

Peter Vlugter | 16 Dec 02:50
Picon
Gravatar

Announce: Akka 2.0 Pre-release Milestone 1

Ladies and gentlemen, Scalars and hAkkers,

We, the Akka committers, are proud to announce the availability of Akka 2.0 pre-release Milestone 1.

We invite you to take it for a spin. It's the next generation of Akka!

The creation of Akka 2.0 has been based on feedback received from users, the good and the bad. The problems
users have had, the missing features, and also what users really like about Akka, have all informed the new Akka.

In the coming months we will continue to improve Akka 2.0 based on your feedback. We're in the process of
developing migration guidelines.

You can read more about this first milestone of Akka 2.0 here: http://blog.typesafe.com/akka-20-pre-release-milestone-1

Highlights of Akka 2.0 Milestone 1:

* Asynchronous by design - most actor related operations are now asynchronous

* Removing all global state - introducing ActorSystem

* Mandatory Parental Supervision - fault-tolerant default and automatic

* Remote Supervision - children spawned on other nodes are supervised

* Actor Tree Hierarchy - file-system like addressing, with wildcards etc.

* Props - Actor configuration is immutable, sharable and reusable

* Futures & Promises - simpler and more powerful, blocking API refactored out

* Actor Routing - completely revamped, load balancing made much simpler

* Death Watch - react to the death of any actor

* Typed Actors - 0 dependency JDK Proxy based implementation

* EventBus API - publish-subscribe to anything you want

* Extensions - add new functionality to Akka

* Pluggable remote transport layer - Netty/TCP built-in

* General API unification and simplification - less to remember

* Simpler actor life-cycle semantics and management

* Slimmer footprint - around 2.7 million Actors per GB of memory

* Lots of performance and scalability improvements

Akka is released under the Apache V2 license.

Akka website: http://akka.io

Akka Maven repository: http://akka.io/releases

Akka binary distribution: http://akka.io/downloads

Akka 2.0-M1 documentation: http://akka.io/docs/akka/2.0-M1

Issue tracker: https://www.assembla.com/spaces/akka/milestones/528841-2-0-m1

What’s coming in the next milestone: https://www.assembla.com/spaces/akka/milestones/752523-2-0-m2

Akka mailing list: https://groups.google.com/group/akka-user

And as usual... happy hAkking!
Graham Lea | 21 Dec 11:06
Gravatar

SodaTest 0.2.1 Released

SodaTest (Spreadsheet-Driven Testing) is an open-source framework for creating Executable Requirements for Integration, Functional and Acceptance testing using Scala or Java. More info in the README: https://github.com/GrahamLea/SodaTest/blob/master/README.md

Major changes in 0.2.1 include:
  • SodaTest artefacts are now available from Maven Central
  • Coercions can now be created in Java without any knowledge of Scala
  • Built-in support was added for coercing strings into Java enums
  • An implicit function is available for converting into a Coercion from any function with the type: (String) => _
  • A CurrencyAmountCoercion and CurrencyAmountCoercionForJava are now available for coercing a variety of financial value formats into your own custom Currency or Money class
  • Reports no longer report a mismatch due to trailing empty cells in the actual output
  • A bunch of usability fixes such as handling unusual situations, reporting better error messages, correct usage messages, more scaladoc and READMEs.
Official announcement here: http://grahamhackingscala.blogspot.com/2011/12/sodatest-021-released.html

SodaTest 0.2.1 is built against Scala 2.8.x and has no external dependencies.

All feedback is welcome! either via GitHub or directly to graham-hTVnwT/20IuB+jHODAdFcQ@public.gmane.org

Kostas Kougios | 4 Dec 01:02

scalaconcurrency: A wrapper for java.util.concurrent

Hi all,

   I would like to announce the first public release of this library.
A wrapper around some of the java.util.concurrent classes of JDK5,6 &
7. Currently manages executors and locks and there are usage examples
on the library's home page:

https://code.google.com/p/scalaconcurrency/

The library wraps fixed, cached and scheduled thread pools, completion
services, reentrant locks and read/write locks. Also offers convenient
lifecycle methods for easily creating, using and shutting down
executors.

Quick examples follows:

---
val executorService = ExecutorServiceManager.newScheduledThreadPool(5)
...
// schedule a task to run after 500 milliseconds
val future = executorService.schedule(500, TimeUnit.MILLISECONDS) {
        .... calculate something
}
val result=future.get
...
executorService.shutdownAndAwaitTermination(1)
---

val lock = LockManager.readWriteLock
val result=lock.writeLockAndDo {
        ...do something
}
---

Regards,

Konstantinos Kougios

Kostas Kougios | 22 Nov 00:38

MapperDao ORM library 0.9.1 released

Hi all,

   Getting closer to v1.0, the mapperdao now supports sql server along
with oracle, mysql, derby, postgresql. MapperDao was build in scala
and compared to i.e. hibernate it supports immutability, options, map-
once and run on all supported databases without recompilation or any
code changes, configurable retrieval of entities during queries and no
need to impl equals() or hashCode just for mapperdao. Ofcourse
transactions are supported but best of all, a clean domain model
without code restrictions posed by other ORM tools. Finally, MapperDao
provides mixins to easily create CRUD dao's with options to retreive
paged rows of entities.

https://code.google.com/p/mapperdao/

Please provide feedback on the "Issues" section regarding i.e. which
database should be supported next or any feature that you might wish
to be added.

A quick example:

domain package:

class Person(val name: String, val company: Company)
class Company(val name: String)

dao package:

object PersonEntity extends Entity[IntId, Person](classOf[Person]) {
        val id = key("id") autogenerated (_.id)
        val name = column("name") to (_.name) // maps column "name" to
Person.name
        val company = manytoone(CompanyEntity) to (_.company)

        def constructor(implicit m: ValuesMap) = new Person(name,
company) with IntId with Persisted {
                val id: Int = PersonEntity.id
        }
}

object CompanyEntity extends Entity[IntId, Company](classOf[Company])
{
        val id = key("id") autogenerated (_.id)
        val name = column("name") to (_.name)

        def constructor(implicit m: ValuesMap) = new Company(name)
with IntId with Persisted {
                val id: Int = CompanyEntity.id
        }
}

now we can use mapperdao straight away to i.e. insert data:

val inserted=mapperDao.insert(PersonEntity,new Person("Kostas",new
Company("My Company"))
println(inserted.id)

or on a real life project we would use the mapperdao mixins to create
our dao's:

abstract class PersonDao extends TransactionalIntIdCRUD[Person] with
IntIdAll[Person] {
	val entity = PersonEntity

	// aliases
	val pe=PersonEntity
	val ce=CompanyEntity

	// find all Person working for a company. The return type is
List[Person with IntId]
	def workingForCompany(name:String) = queryDao.query(
		select from pe join (pe,pe.company,ce)
		where ce.name===name
}
// PersonDao mixes in the following methods: create(), retrieve(),
update(), delete() and also all():List[Person],
page(page,rowsPerPage):List[Person] etc

mvc package:

val person=personDao.create(new Person("Kostas",new Company("My
Company"))
println(person.id) // autogenerated

...

val people=personDao.page(1,20) // get's the 1st page containing 20
Person entities

MapperDao uses springframework's JdbcTemplate and transaction
infrastructure, featuring full support for transactional features of
each database, propagation and isolation levels along with transaction
timeouts.

Next versions might see optimizations, a pdf tutorial and a head to
head comparison with hibernate (performance, coding patterns, cross
database compatibility etc)

Best Regards,

Kostantinos Kougios


Gmane