Code Monkey home page Code Monkey logo

clj-kitchensink's Introduction

puppetlabs/kitchensink

A library of utility functions that are common to several Puppet Labs clojure projects.

Installation

Add the following dependency to your project.clj file:

Clojars Project

Using Our Test Utils

Kitchensink provides utility code for use in tests. The code is available in a separate "test" jar that you may depend on by using a classifier in your project dependencies.

  (defproject yourproject "1.0.0"
    ...
    :profiles {:test {:dependencies [[puppetlabs/kitchensink "x.y.z" :classifier "test"]]}})

License

Copyright © 2013 Puppet Labs

Distributed under the Apache License, version 2.

Support

Please log tickets and issues at our Trapperkeeper JIRA tracker.

clj-kitchensink's People

Contributors

adreyer avatar aperiodic avatar camlow325 avatar cprice404 avatar dankreek avatar edwardbetts avatar ekinanp avatar grimradical avatar haus avatar jelinwils avatar jonathannewman avatar jpinsonault avatar justinstoller avatar kbarber avatar kevincorcoran avatar knbanderson avatar livinginsyn avatar magisus avatar mikaelsmith avatar mullr avatar mwaggett avatar nicklewis avatar nwolfe avatar pcarlisle avatar puppetlabs-jenkins avatar rbrw avatar senior avatar steveax avatar tobias avatar wkalt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clj-kitchensink's Issues

kitchensink build fails under Java 9

I'm trying to prep us all for Java 9, and took a look at kitchensink because it uses dynapath (there is a Java 9 issue with dynapath < 0.2.4 - I'll send a PR to update that shortly). Even with the newer dynapath, the kitchensink build fails with:

ERROR in (with-additional-classpath-entries-test) (Reflector.java:272)
Uncaught exception, not in assertion.
expected: nil
  actual: java.lang.IllegalArgumentException: No matching field found: getURLs for class jdk.internal.loader.ClassLoaders$AppClassLoader
 at clojure.lang.Reflector.getInstanceField (Reflector.java:272)
    clojure.lang.Reflector.invokeNoArgInstanceMember (Reflector.java:315)
    puppetlabs.kitchensink.classpath_test$fn__353$get_urls__354.invoke (classpath_test.clj:9)
    puppetlabs.kitchensink.classpath_test$fn__353.invokeStatic (classpath_test.clj:17)
    puppetlabs.kitchensink.classpath_test/fn (classpath_test.clj:6)
    clojure.test$test_var$fn__7983.invoke (test.clj:716)
    clojure.test$test_var.invokeStatic (test.clj:716)
    clojure.test$test_var.invoke (test.clj:707)
    clojure.test$test_vars$fn__8005$fn__8010.invoke (test.clj:734)
    clojure.test$default_fixture.invokeStatic (test.clj:686)
    clojure.test$default_fixture.invoke (test.clj:682)
    clojure.test$test_vars$fn__8005.invoke (test.clj:734)
    clojure.test$default_fixture.invokeStatic (test.clj:686)
    clojure.test$default_fixture.invoke (test.clj:682)
    clojure.test$test_vars.invokeStatic (test.clj:730)
    clojure.test$test_all_vars.invokeStatic (test.clj:736)
    clojure.test$test_ns.invokeStatic (test.clj:757)
    clojure.test$test_ns.invoke (test.clj:742)
    user$eval85$fn__136.invoke (form-init3789164235670503091.clj:1)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.injected$compose_hooks$fn__19.doInvoke (form-init3789164235670503091.clj:1)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.core$apply.invoke (core.clj:641)
    leiningen.core.injected$run_hooks.invokeStatic (form-init3789164235670503091.clj:1)
    leiningen.core.injected$run_hooks.invoke (form-init3789164235670503091.clj:1)
    leiningen.core.injected$prepare_for_hooks$fn__24$fn__25.doInvoke (form-init3789164235670503091.clj:1)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$map$fn__4785.invoke (core.clj:2646)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.Cons.next (Cons.java:39)
    clojure.lang.RT.boundedLength (RT.java:1749)
    clojure.lang.RestFn.applyTo (RestFn.java:130)
    clojure.core$apply.invokeStatic (core.clj:648)
    clojure.test$run_tests.invokeStatic (test.clj:767)
    clojure.test$run_tests.doInvoke (test.clj:767)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:646)
    clojure.core$apply.invoke (core.clj:641)
    user$eval85$fn__148$fn__179.invoke (form-init3789164235670503091.clj:1)
    user$eval85$fn__148$fn__149.invoke (form-init3789164235670503091.clj:1)
    user$eval85$fn__148.invoke (form-init3789164235670503091.clj:1)
    user$eval85.invokeStatic (form-init3789164235670503091.clj:1)
    user$eval85.invoke (form-init3789164235670503091.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:6927)
    clojure.lang.Compiler.eval (Compiler.java:6917)
    clojure.lang.Compiler.load (Compiler.java:7379)
    clojure.lang.Compiler.loadFile (Compiler.java:7317)
    clojure.main$load_script.invokeStatic (main.clj:275)
    clojure.main$init_opt.invokeStatic (main.clj:277)
    clojure.main$init_opt.invoke (main.clj:277)
    clojure.main$initialize.invokeStatic (main.clj:308)
    clojure.main$null_opt.invokeStatic (main.clj:342)
    clojure.main$null_opt.invoke (main.clj:339)
    clojure.main$main.invokeStatic (main.clj:421)
    clojure.main$main.doInvoke (main.clj:384)
    clojure.lang.RestFn.invoke (RestFn.java:421)
    clojure.lang.Var.invoke (Var.java:383)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)

This is because the AppClassLoader is no longer a URLClassLoader under Java 9 - see tobias/clojure-java-9#3

Just wanted to make you aware so you have time to fix it before the Java 9 release (currently July of next year).

order of function args is not very consistent

Hi,

the order of your function arguments is not very consistent.
This can be annoying, when working with threading macros (->, ->>, ...).

There are two simple rules for idiomatic clojure (just put them in a comment at
the top):

  1. Seq-FNs take seq as the last arg
  2. Coll-FNs take coll (map, vector, set ...) as first arg

e.g. mapkeys is defined as:

(defn mapkeys [f m] ...

but should better be defined as:

(defn mapkeys [m f] ...

Take care!

Jan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.