Theory In Practice

Tag Results

10 posts tagged clojure

clojure-maven-plugin 1.3.15

Another minor release of the clojure-maven-plugin released to Maven Central fixing a small typo in the new nrepl goal, and also pulling in a long overlooked pull request for Marginalia multidoc generation which can be enabled by adding:

<configuration>
  <marginalia>
    <multi>true</multi>
  </marginalia>
</configuration>

to your pom.xml.

Maven coordinates are:

<dependency>
  <groupId>com.theoryinpractise</groupId>
  <artifactId>clojure-maven-plugin</artifactId>
  <version>1.3.15</version>
</dependency>

Happy clojuring.

clojure-maven-plugin 1.3.14

A minor release of the clojure-maven-plugin to coincide with the release of Clojure 1.5.

This release also brings along a new clojure:nrepl goal which takes 3 parameters:

  • replScript - The clojure script to run before starting the repl
  • port - The nREPL server port, defaulting to 4005 and settable via -Dclojure.nrepl.port
  • nreplHost - The host to bind the nREPL server to, defaulting to localhost and settable via -Dclojure.nrepl.host

Maven coordinates are:

<dependency>
  <groupId>com.theoryinpractise</groupId>
  <artifactId>clojure-maven-plugin</artifactId>
  <version>1.3.14</version>
</dependency>

Happy clojuring.

HalBuilder 2.0.1 Progress

It’s been awhile since I’ve posted anything on the state of HalBuilder and where the project is going, so now that I’d started heading towards a release I thought it was about time I updated the blog about it.

The first thing to note is the Github source repository has moved to a new HalBuilder Organisation and split up into a set of 6-7 separate maven artifacts/git repositories:

  • halbuilder-test-resources
  • halbuilder-api
  • halbuilder-core
  • halbuilder-java
  • halbuilder-scala
  • halbuilder-kotlin
  • halbuilder-clojure

halbuilder-test-resources

A reusable set of HAL representations in both XML and JSON format to use in tests. This artifact is bundled using the maven-remote-resources plugin for easy reuse in other projects.

Currently this is the only 2.0.1 series artifact that has been released.

<dependency>
<groupId>com.theoryinpractise</groupId>
<artifactId>halbuilder-test-resources</artifactId>
<version>2.0.1</version>
</dependency>

halbuilder-api

Next up is the HalBuilder API artefact, under the 1.x releases this used to be the contents of the com.theoryinpractise.halbuilder.spi package.

There are two fundamental changes in the 2.0.1 series of HalBuilder:

  1. The base API contains no dependency on the Google Guava library, this means the things no longer return Optional<T> instances ( see the halbuilder-java module for this ).
  2. All classes/interfaces/methods with the word Resource in their name have been renamed to Representation to more clearly separate HAL from your actual REST API. HalBuilder is all about the representation of your resources, not the resources themselves.

halbuilder-core

The core HalBuilder library - this is 1.x restructured, and without any outgoing Google Guava dependencies.

halbuilder-java

The halbuilder-java module provides a simple “extension” class (com.theoryinpractise.halbuilder.java.Representations) containing Guava based extensions to the HalBuilder library.

halbuilder-scala

The new halbuilder-scala module contains implicit conversions providing idiomatic Scala extensions to the HalBuilder library. Similar to halbuilder-java only using Scala’s Option and closures.

halbuilder-kotlin ( coming )

The planned halbuilder-kotlin module provides idiomatic Kotlin extension methods to HalBuilder. The intent is to be a sister to module to halbuilder-scala only using Kotlin nullable types and closures.

halbuilder-clojure ( coming )

The planned halbuilder-clojure module provides idiomatic Clojure functions wrapping HalBuilder. Much like halbuilder-kotlin and halbuilder-scala - the intent is to provide support for clojure functions/predicates/maps when working with HalBuilder.

Releasing?

So far I’m pretty happy with the shape of halbuilder-api, halbuilder-core, and halbuilder-java so I hope to start releasing these artifacts over the next week or two unless something crops up, or someone reports some heinous design flaw…

clojure-maven-plugin 1.3.12

A small patch release of the clojure-maven-plugin has been pushed out to Maven Central:

  • Support for Colin James REPL-y project. Simply add a project dependency on REPL-y and it will be used for the clojure:repl goal.
  • A new configuration flag (spawnInteractiveConsoleOnWindows) to disable process spawning on the Windows platform.
<plugin>
  <groupId>com.theoryinpractise</groupId>
  <artifactId>clojure-maven-plugin</artifactId>
  <version>1.3.12</version>
</plugin>
Everytime I tinker with Newspeak I keep thinking I&#8217;d love to have a variation of the Hopscotch IDE for clojure - providing an easy browser style interface to namespaces, function definitions, and a REPL.
Having the browser is what makes Smalltalk and Newspeak so much more powerful an environment IMHO.

Everytime I tinker with Newspeak I keep thinking I’d love to have a variation of the Hopscotch IDE for clojure - providing an easy browser style interface to namespaces, function definitions, and a REPL.

Having the browser is what makes Smalltalk and Newspeak so much more powerful an environment IMHO.

Clojure Maven Plugin 1.3.10

A minor update to the clojure-maven-plugin including:

<plugins>
  <plugin>
    <groupId>com.theoryinpractise</groupId>
    <artifactId>clojure-maven-plugin</artifactId>
    <version>1.3.10</version>
    <extensions>true</extensions>
  </plugin>
</plugins>
  • Marginalia Mojo to be 0.7.x compatible
  • -DskipTests support added to test-with-junit

A simple small release, but we like them.

clojure-maven-plugin 1.3.9 released.

Thank’s to some small, but super awesome pull requests from Cosmin Stejerean I just released version 1.3.9 of the clojure-maven-plugin which should be hitting Maven Central shortly:

<plugin>
  <groupId>com.theoryinpractise</groupId>
  <artifactId>clojure-maven-plugin</artifactId>
  <version>1.3.9</version>
  <extensions>true</extensions>
</plugin>

Changes:

  • Two new goals: add-source and add-test-source which will include your clojure sources in the -sources.jar and -test-sources.jar respectively when doing releases. These goals have been added to the default clojure packaging lifecycle.
  • The clojure packaging lifecycle has been changed to report java as it’s language, allowing plugins such as javadoc and emma to run.
  • Support for Cosmin’s iClojure REPL replacement – simply include iclojure as a dependency.

clojure-maven-plugin 1.3.8

It’s been a few months since I’ve managed to find time to do any work on the clojure-maven-plugin but since there’s a few bug fixes and updates sitting on the development branch it’s high time for a new release!

1.3.8 has been released to Maven Central with the following changes:

  • Add autodocTargetDirectory property to specify location of autodoc output.
  • Add dependency info in README.
  • Add mojo for running marginalia.
  • Honour skipTests to prevent test execution.
  • Switched to using SourceInclusionScanner to find which source files to recompile.
  • Added integration test for clojure 1.3-beta1.
  • Fixes issue with test-with-junit not failing build if there are test failures.
  • clojure:swank now requires swank-clojure 1.3.1

Thanks to Hugo Duncan and Paudi Moriarty for contributions to this rather belated release.

ANN: clojure-maven-plugin 1.3.5 released

  • Support for the latest VimClojure via clojure:nailgun, if older vimclojure support is required run with mvn clojure:nailgun -Dclojure.nailgun.server=com.martiansoftware.nailgun.NGServer
  • When using a entry, if the filename resolves to an existing fully qualified filename, otherwise prepend the working directory. If it still doesn’t exist, fail the maven run.
  • Fixes for Windows usage - new DOS window is spawned ONLY for the REPL, not compile/test/swank etc.
  • Added install/deploy phases to the clojure packaging
  • Fixed spelling error of tempory to temporary in MOJO property, javadoc, and readme.