Use `done` and `resolve` from jayq

Use `done` and `resolve` from jayq

in place of calling the `.done` and `.resolve` methods.

Signed-off-by: Pang Yan Han <22594c345857f664c61cd411f607c4d40a9d4af9@gmail.com>

--- src/cljs/cljs_nusmods/main.cljs
+++ src/cljs/cljs_nusmods/main.cljs
@@ -1,7 +1,7 @@
 (ns ^{:doc "main entry point for the cljs-nusmods project"}
   cljs-nusmods.main
-  (:use [jayq.core :only [$ $deferred $when attr document-ready hide is one
-                          parent prevent show]])
+  (:use [jayq.core :only [$ $deferred $when attr document-ready done hide is one
+                          parent prevent resolve show]])
   (:require [cljs-nusmods.module-array-repr     :as module-array-repr]
             [cljs-nusmods.aux-module-array-repr :as aux-module-array-repr]
             [cljs-nusmods.lesson-array-repr     :as lesson-array-repr]
@@ -400,14 +400,14 @@
               (if (not MODULE-FINDER-SCRIPTS-STARTED-DL?)
                   (do
                     (set! MODULE-FINDER-SCRIPTS-STARTED-DL? true)
-                    (.done ($when (getScript "js/auxmodinfo.js")
+                    (done ($when (getScript "js/auxmodinfo.js")
                                   (getScript "js/vendor/exhibit3-all.min.js")
                                   ($deferred (fn [deferred]
-                                               ($ (.resolve deferred)))))
-                           (fn []
-                             (set! MODULE-FINDER-SCRIPTS-DLED? true)
-                             (set! INITIALIZE-EXHIBIT3-INTERVAL-VAL
-                                   (js/setInterval check-and-initialize-exhibit3 1000))))))
+                                               ($ (resolve deferred nil)))))
+                          (fn []
+                            (set! MODULE-FINDER-SCRIPTS-DLED? true)
+                            (set! INITIALIZE-EXHIBIT3-INTERVAL-VAL
+                                  (js/setInterval check-and-initialize-exhibit3 1000))))))
               (hide ($ :#timetable-builder))
               (show ($ :#module-finder))
               (.removeClass (parent ($ :#timetable-builder-tab-link)) "active")


Don't need copy-to-clipboard

Don't need copy-to-clipboard

--- src/cljs/cljs_webrepl/core.cljs
+++ src/cljs/cljs_webrepl/core.cljs
@@ -1,6 +1,6 @@
 (ns cljs-webrepl.core
   (:require
-   [clojure.string :as str :refer [blank? trim]]
+   [clojure.string :as str]
    [cljs.core.async :refer [chan close! timeout put!]]
    [cljsjs.clipboard :as clipboard]
    [reagent.core :as r :refer [atom]]
@@ -115,10 +115,7 @@
     (when (and (some? to-repl) (some? expression))
       (put! to-repl expression))))

-(defn copy-to-clipboard [txt]
-  (->> (js-obj "dataType" "text/plain" "data" txt)
-       (new js/ClipboardEvent "copy")
-       (js/document.dispatchEvent)))
+

 (defn history-prev [{:keys [cursor history] :as state}]
   (let [c          (count history)
@@ -144,7 +141,7 @@
          :input ""))

 (defn eval-input [state]
-  (let [input (trim (:input @state))]
+  (let [input (str/trim (:input @state))]
     (when-not (= "" input)
       (eval-str! input)
       (swap! state assoc :input ""))))
@@ -302,7 +299,7 @@
   (let [state              (:state props)
         {:keys [ns input]} @state
         is-init?           (some? ns)
-        is-blank?          (blank? input)
+        is-blank?          (str/blank? input)
         is-disabled?       (or (not is-init?) is-blank?)]
     [:div.padding-left
      ^{:key is-disabled?}


Big stinking horrible commit, sorry

Big stinking horrible commit, sorry

--- src/cljs/htt_schedule/core.cljs
+++ src/cljs/htt_schedule/core.cljs
@@ -4,10 +4,23 @@

 (enable-console-print!)

-(defonce app-state (atom {:text "Hello HackTheTower Chestnut!"
+(defonce app-state (atom {:text "ProgsCon Awesomenessness"
                       :schedule []}))

-(defn talk-detail [cursor component]
+(defn twitter-handle [cursor component]
+  (reify
+    om/IRender
+    (render [this]
+      (dom/a #js {:href (str "https://twitter.com/" cursor)}
+             (str "@" cursor)))))
+
+;; Add twitter icon button
+;;
+;;
+;;
+
+
+#_(defn talk-detail [cursor component]
   (reify
     om/IRender
     (render [this]
@@ -17,10 +30,32 @@
                         (dom/div nil (:description cursor))
                         (dom/a #js {:href (str "https://twitter.com/" (:twitter-handle cursor))} (str "@" (:twitter-handle cursor))))))))

+
+;; Separate out the generation of the twitter handle, updating the cursor to just contain the twitter handle (saving us from extracting it in the twitter handler component)
+(defn talk-detail [cursor component]
+  (reify
+    om/IRender
+    (render [this]
+      (dom/div #js {:className "panel panel-primary"}
+               (dom/div #js {:className "panel-heading"} (:title cursor))
+               (dom/div #js {:className "panel-body"}
+                        (dom/div nil (:description cursor))
+                        #_(dom/div nil
+                                 (om/img #js {:src "https://twitter.com/logo.png"}))
+                        (om/build twitter-handle (:twitter-handle cursor)))))))
+
 #_(dom/div nil
            (dom/div #js {:style {:color "blue"}} (:title cursor))
            (dom/div nil (:description cursor))
            (dom/a #js {:href (str "https://twitter.com/" (:twitter-handle cursor))} (:twitter-handle cursor)))
+
+
+
+;; Add a star button to each talk using bootstrap
+;; <button type="button" class="btn btn-default btn-lg">
+;;  Star
+;; </button>
+

 (defn schedule [cursor component]
   (reify
@@ -45,13 +80,48 @@
   :description " "
   :twitter-handle ""}]

+
+(defn add-session [cursor component]
+  (reify
+    om/IRender
+    (render [this]
+      (dom/div nil
+        (dom/h3 nil "Add New Session")
+        (dom/form #js {:className "form-horizontal"}
+                  (dom/input #js {:type "text"
+                                  :className "form-control"
+                                  :placeholder "Session Title"})
+                  (dom/textarea #js {:className "form-control"
+                                     :placeholder "Session description"
+                                     :rows "5"})
+                  (dom/input #js {:type "text"
+                                  :className "form-control"
+                                  :placeholder "Twitter handle"})
+                  (dom/button #js {:className "btn btn-primary"
+                                   :onClick (fn [e]
+                                              (.preventDefault e)
+                                              (om/transact! cursor :entries
+                                                            (fn [items]
+                                                              ((fnil conj []) items
+                                                               {:title "summary"
+                                                                :description "date-time"
+                                                                :twitter-handle "notes"}))))}
+                              "Add New Session"))
+               ))))
+
+
 (defn root-component [app owner]
   (reify
     om/IRender
     (render [_]
-      (dom/div nil
-               (dom/h1 nil (:text app))
-               (om/build schedule app)))))
+      (dom/div #js {:className "container"}
+               (dom/p #js {:className "jumbotron" :style #js {:fontSize "42px"} } (:text app))
+               (om/build schedule app)
+               (om/build add-session app)))))
+
+;; content header options
+;; jumbotron
+

 (om/root
  root-component
@@ -67,15 +137,61 @@

 @app-state

-#_(swap! app-state update :schedule conj {:title "Opening Keynote"
-                                        :description "Something very inspirational"
-                                        :twitter-handle "jr0cket" })
-
-(swap! app-state update :schedule conj {:title "A Glass of CIDER"
-                                        :description "Unleashing the power of Clojure with Emacs"
-                                        :twitter-handle "batisov" })
-
-#_(reset! app-state {:text "Reseting Title"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Example talk schedule data
+
+#_(swap! app-state
+         update :schedule
+         conj {:title "Opening Keynote"
+               :description "Words can be very inspirational"
+               :twitter-handle "jr0cket" })
+
+
+#_(swap! app-state
+         update :schedule
+         conj {:title "A Glass of CIDER"
+               :description "Unleashing the power of Clojure with Emacs"
+               :twitter-handle "batisov" })
+
+
+#_(def trisha-gee
+  {:title "Becoming Fully Buzzword Compliant"
+   :bio
+     "I’m a developer / technical advocate / educator, based in Spain and working remotely for JetBrains.
+      I love the combination of solving technical problems and working out the best way to teach other developers techniques that will make their lives easier.
+
+      I’m a leader of the Sevilla MongoDB and Java User Groups, and a key member of the London Java Community.
+      In 2014 I became a Java Champion and I’m a 2015 MongoDB Master."
+   :description
+     "It’s all about Containers, Serverless and Reactive Programming right now!
+      ProgSCon London will explore these trends with leading industry experts.
+      Several talks will also feature Blockchain, Microservices and Big Data.
+
+      You’re here at ProgSCon to hear all about the latest trends in technology,
+      to learn about them and decide which ones to apply and figure out how.
+      But it’s a tall order, learning to be a fully buzzword compliant developer, architect or lead,
+      especially when What’s Hot changes on practically a daily basis.
+
+      During this talk, Trisha will give an irreverent overview of the current technical landscape
+      and present a survival guide for those who want to stay ahead in this turbulent industry."
+   :twitter-handle "trisha_gee"})
+
+#_(def trisha-gee-image "http://2017.progscon.co.uk/wp-content/uploads/2016/11/TrishaGee-150x150.jpg")
+
+#_(swap! app-state update :schedule conj trisha-gee)
+
+
+;; other speakers to include
+;; http://2017.progscon.co.uk/cr3ativspeaker/jan-machacek/
+;; http://2017.progscon.co.uk/cr3ativspeaker/ramkumar-aiyengar/
+;; http://2017.progscon.co.uk/cr3ativspeaker/steve-poole/
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Reset data
+
+#_(reset! app-state {:text "ProgsCon Awesomenessness"
                    :schedule []})

@@ -83,10 +199,58 @@

-
-
-
-
+;; Other ideas
+
+;; Slurp the progscon schedule into the app from a file (or scrapped from the website for complete awesomenessness)
+
+
+
+;; Media heading with twitter profile picture
+
+;; Add media heading
+;;

+;;
  or

+;;
+;;
+;;
+;;

+;;

+;;
Media heading

+;; ...
+;;

+;;

+
+
+;; Sign in with Twitter button
+;;
+;;  Sign in with Twitter
+;;
+
+;; Now that we’ve actually installed it, let’s go ahead and start adding the icons. Continuing with our footer, I’m going to go:
+;;

+;;

+;; Now I will actually add the icons:
+;;
+;;
+;; So now if we go to our preview, we’ll see the Facebook icon, but you’ll notice that it’s pretty small. So what I’m going to do is increase the size by adding “fa-2x.” Now you’ll see that it’s quite a bit bigger. Now I’m just going to add a few more:
+;;
+;;
+;;
+;;
+
+
+
+;; Embed video
+
+;;
+;;

+;;
+;;

+
+;;
+;;

+;;
+;;


alter yelp-api call

alter yelp-api call

--- src/cljs/montheway/mmodern.cljs
+++ src/cljs/montheway/mmodern.cljs
@@ -146,8 +146,7 @@

 (defn json-parse [s]
   (js->clj
-   (.parse js/JSON s)
-   :keywordize-keys true))
+   (.parse js/JSON s)))

 (defn fetch-google-lat-lngs [to from]
   (go
@@ -216,7 +215,7 @@
                                    (:sw-lat map-bounds) "," (:sw-lng map-bounds) "|"
                                    (:ne-lat map-bounds) "," (:ne-lng map-bounds))
            yelp-response (<! (http/get yelp-url))
-           businesses (-> yelp-response :body json-parse)
+           businesses (-> yelp-response :body)
            relevant-biz (->> businesses
                              (find-businesses-on-the-way lat-lngs)
                              sort-filter-businesses)


Move function zip-remove-children.

Move function zip-remove-children.

It's needed further up in the file (called by zip-add-move), but I
didn't notice while developing interactively.

--- src/clojure/clj_chess/game.cljc
+++ src/clojure/clj_chess/game.cljc
@@ -106,6 +106,13 @@
   ([game] (game-zip game (-> game :root-node :node-id))))

+(defn- zip-remove-children
+  "Takes a game tree zipper and returns a zipper for a modified game tree
+  where all the child nodes at the current location are removed."
+  [zipper]
+  (zip/edit zipper #(dissoc % :children)))
+
+
 (defn- zip-add-move
   "Takes a zipper, a move function (a function that, given a board
   and some other value, translates that value to a chess move),
@@ -151,11 +158,7 @@
   [zipper key value]
   (zip/edit zipper assoc-in [key] value))

-(defn- zip-remove-children
-  "Takes a game tree zipper and returns a zipper for a modified game tree
-  where all the child nodes at the current location are removed."
-  [zipper]
-  (zip/edit zipper #(dissoc % :children)))
+

 (defn zip-promote-node
   "Takes a game tree zipper and returns a zipper for a modified game tree


add decoration

add decoration

--- src/clojure_fabric/wrappers.clj
+++ src/clojure_fabric/wrappers.clj
@@ -1,410 +1,430 @@
-(import
- org.hyperledger.fabric.protos.common.Common$Block
- org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeActionPayload$Builder
- org.hyperledger.fabric.protos.peer.Query$ChannelQueryResponse$Builder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicy
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInputOrBuilder
- org.hyperledger.fabric.protos.msp.Identities$SerializedIdentityOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetStateByRangeOrBuilder
- org.hyperledger.fabric.protos.peer.Resources$ResourceOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPConfig
- org.hyperledger.fabric.protos.orderer.Ab$BroadcastResponseOrBuilder
- org.hyperledger.fabric.protos.common.Common$BlockMetadataOrBuilder
- org.hyperledger.fabric.protos.common.Configtx$ConfigPolicySchema$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigSignature$Builder
- org.hyperledger.fabric.protos.orderer.Configuration$ConsensusType$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigPolicy$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateNext
- org.hyperledger.fabric.protos.common.Configuration$BlockDataHashingStructure$Builder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMetadata
- org.hyperledger.fabric.protos.common.Configuration$Capabilities
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Response
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateNextOrBuilder
- org.hyperledger.fabric.protos.peer.Configuration$AnchorPeerOrBuilder
- org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelResponseOrBuilder
- org.hyperledger.fabric.protos.msp.Identities$SerializedIdemixIdentityOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$FilteredBlockOrBuilder
- org.hyperledger.fabric.protos.common.Configtx$ConfigPolicyOrBuilder
- org.hyperledger.fabric.protos.peer.Peer$PeerEndpointOrBuilder
- org.hyperledger.fabric.protos.peer.SignedCcDepSpec$SignedChaincodeDeploymentSpec$Builder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricOUIdentifier
- org.hyperledger.fabric.protos.common.Common$Metadata
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageTimeToCut$Builder
- org.hyperledger.fabric.protos.common.Ledger
- org.hyperledger.fabric.protos.orderer.Configuration$BatchTimeout
- org.hyperledger.fabric.protos.peer.SignedCcDepSpec$SignedChaincodeDeploymentSpecOrBuilder
- org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelRequest$Builder
- org.hyperledger.fabric.protos.peer.Chaincode
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpec$ExecutionEnvironment
- org.hyperledger.fabric.protos.common.Common$MetadataSignatureOrBuilder
- org.hyperledger.fabric.protos.peer.Configuration$AnchorPeers
- org.hyperledger.fabric.protos.common.Configtx$ConfigSignatureOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage
- org.hyperledger.fabric.protos.peer.ChaincodeShim$PutStateInfo$Builder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMetadataOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetStateByRange$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$GroupsDefaultEntryHolder
- org.hyperledger.fabric.protos.common.Common$SignatureHeader
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricCryptoConfig
- org.hyperledger.fabric.protos.common.Common$Payload$Builder
- org.hyperledger.fabric.protos.msp.Identities$SerializedIdemixIdentity
- org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeEndorsedAction$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessage$Type
- org.hyperledger.fabric.protos.orderer.Configuration$ConsensusType
- org.hyperledger.fabric.protos.orderer.Ab$SeekPosition$TypeCase
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateEnvelope
- org.hyperledger.fabric.protos.msp.Identities$SerializedIdemixIdentity$Builder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$NOutOf
- org.hyperledger.fabric.protos.peer.TransactionPackage$SignedTransactionOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpecOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekOldest
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdate$IsolatedDataDefaultEntryHolder
- org.hyperledger.fabric.protos.common.Common$Payload
- org.hyperledger.fabric.protos.peer.TransactionPackage$SignedTransaction
- org.hyperledger.fabric.protos.common.Common$BlockHeader
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipal$Classification
- org.hyperledger.fabric.protos.orderer.Configuration$KafkaBrokers
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricOUIdentifierOrBuilder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$NOutOfOrBuilder
- org.hyperledger.fabric.protos.orderer.Configuration$ConsensusTypeOrBuilder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegularOrBuilder
- org.hyperledger.fabric.protos.common.Common$BlockMetadataIndex
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpec$Builder
- org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeEndorsedActionOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$InterestOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekOldest$Builder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessage
- org.hyperledger.fabric.protos.peer.EventsPackage$Rejection$Builder
- org.hyperledger.fabric.protos.common.Configuration$BlockDataHashingStructureOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResultBytesOrBuilder
- org.hyperledger.fabric.protos.common.Common$Envelope
- org.hyperledger.fabric.protos.peer.ProposalPackage$Proposal$Builder
- org.hyperledger.fabric.protos.peer.TransactionPackage$SignedTransaction$Builder
- org.hyperledger.fabric.protos.peer.EventsPackage$SignedEvent$Builder
- org.hyperledger.fabric.protos.common.Configuration$Capabilities$CapabilitiesDefaultEntryHolder
- org.hyperledger.fabric.protos.common.Configtx$ConfigPolicySchemaOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Endorsement$Builder
- org.hyperledger.fabric.protos.peer.Resources$Resource
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$ValuesDefaultEntryHolder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessage
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResponse
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegular
- org.hyperledger.fabric.protos.peer.TransactionPackage$Transaction
- org.hyperledger.fabric.protos.common.Configtx$ConfigValueOrBuilder
- org.hyperledger.fabric.protos.common.Common$MetadataSignature$Builder
- org.hyperledger.fabric.protos.common.Policies
- org.hyperledger.fabric.protos.common.Ledger$BlockchainInfo$Builder
- org.hyperledger.fabric.protos.peer.Query$ChaincodeInfo$Builder
- org.hyperledger.fabric.protos.orderer.Configuration$ChannelRestrictions$Builder
- org.hyperledger.fabric.protos.common.Policies$Policy$Builder
- org.hyperledger.fabric.protos.peer.Peer
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResponse$Builder
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$EndorsementOrBuilder
- org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicyOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateNext$Builder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$SigningIdentityInfoOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateCloseOrBuilder
- org.hyperledger.fabric.protos.common.Configuration$Capability
- org.hyperledger.fabric.protos.common.Configtx$ConfigEnvelope$Builder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInvocationSpec$Builder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicyEnvelopeOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$MSPConfig
- org.hyperledger.fabric.protos.common.Configuration$OrdererAddresses$Builder
- org.hyperledger.fabric.protos.common.Common$BlockDataOrBuilder
- org.hyperledger.fabric.protos.orderer.Kafka
- org.hyperledger.fabric.protos.peer.TransactionPackage$ProcessedTransactionOrBuilder
- org.hyperledger.fabric.protos.common.Common$LastConfigOrBuilder
- org.hyperledger.fabric.protos.common.Common$Header
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$Builder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageTimeToCut
- org.hyperledger.fabric.protos.common.Policies$PolicyOrBuilder
- org.hyperledger.fabric.protos.common.Common$Metadata$Builder
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipal
- org.hyperledger.fabric.protos.common.Configtx$Config
- org.hyperledger.fabric.protos.orderer.Ab$BroadcastResponse$Builder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$NOutOf$Builder
- org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeActionPayload
- org.hyperledger.fabric.protos.common.Configuration$HashingAlgorithm$Builder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeID
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeHeaderExtension
- org.hyperledger.fabric.protos.orderer.Ab$SeekSpecifiedOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetQueryResult
- org.hyperledger.fabric.protos.common.Common$BlockHeader$Builder
- org.hyperledger.fabric.protos.common.Common$HeaderType
- org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelRequestOrBuilder
- org.hyperledger.fabric.protos.common.MspPrincipal$OrganizationUnitOrBuilder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicyEnvelope$Builder
- org.hyperledger.fabric.protos.orderer.Configuration$ChannelRestrictions
- org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionAction
- org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeActionPayloadOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalPackage$SignedProposalOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$Event
- org.hyperledger.fabric.protos.common.Policies$Policy
- org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPSignerConfig$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetQueryResultOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResponseOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekInfoOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResultBytes$Builder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricMSPConfigOrBuilder
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchemaOrBuilder
- org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicy$Builder
- org.hyperledger.fabric.protos.common.Configuration$OrdererAddresses
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipal$Builder
- org.hyperledger.fabric.protos.orderer.Ab$DeliverResponse
- org.hyperledger.fabric.protos.orderer.Configuration$BatchSizeOrBuilder
- org.hyperledger.fabric.protos.common.Common$BlockHeaderOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$Unregister
- org.hyperledger.fabric.protos.msp.MspConfigPackage$KeyInfoOrBuilder
- org.hyperledger.fabric.protos.peer.SignedCcDepSpec$SignedChaincodeDeploymentSpec
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayloadOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricCryptoConfigOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateClose$Builder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricMSPConfig
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInvocationSpecOrBuilder
- org.hyperledger.fabric.protos.orderer.Configuration$BatchSize$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigValue
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$GroupsDefaultEntryHolder
- org.hyperledger.fabric.protos.peer.ChaincodeEventPackage
- org.hyperledger.fabric.protos.peer.EventsPackage$Interest$RegInfoCase
- org.hyperledger.fabric.protos.common.Common$PayloadOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$FilteredTransaction
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponseOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$UnregisterOrBuilder
- org.hyperledger.fabric.protos.common.Common$BlockMetadata$Builder
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPRole$Builder
- org.hyperledger.fabric.protos.orderer.Ab$SeekSpecified
- org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatus$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroup
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricMSPConfig$Builder
- org.hyperledger.fabric.protos.orderer.Ab$SeekSpecified$Builder
- org.hyperledger.fabric.protos.orderer.Ab$SeekPosition$Builder
- org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatusOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$MSPConfig$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeEventPackage$ChaincodeEventOrBuilder
- org.hyperledger.fabric.protos.common.Common$ChannelHeader
- org.hyperledger.fabric.protos.peer.Query$ChaincodeQueryResponse
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegular$Class
- org.hyperledger.fabric.protos.common.Common$Block$Builder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicyEnvelope
- org.hyperledger.fabric.protos.orderer.Configuration$ChannelRestrictionsOrBuilder
- org.hyperledger.fabric.protos.common.Configtx$ConfigValueSchema$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigOrBuilder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetHistoryForKey
- org.hyperledger.fabric.protos.common.Configtx$ConfigValue$Builder
- org.hyperledger.fabric.protos.common.Configuration$HashingAlgorithmOrBuilder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMetadata$Builder
- org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelResponse$Builder
- org.hyperledger.fabric.protos.common.Configuration$ConsortiumOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPConfigOrBuilder
- org.hyperledger.fabric.protos.peer.TransactionPackage$ProcessedTransaction
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeAction
- org.hyperledger.fabric.protos.common.Configuration$CapabilitiesOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$DeliverResponse$Builder
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeAction$Builder
- org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelRequest
- org.hyperledger.fabric.protos.peer.ChaincodeShim$PutStateInfoOrBuilder
- org.hyperledger.fabric.protos.peer.TransactionPackage$ProcessedTransaction$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetHistoryForKey$Builder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$KeyInfo
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayload$TransientMapDefaultEntryHolder
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$PoliciesDefaultEntryHolder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetStateByRange
- org.hyperledger.fabric.protos.common.Configtx$ConfigValueSchema
- org.hyperledger.fabric.protos.msp.MspConfigPackage$SigningIdentityInfo$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigSignature
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$PoliciesDefaultEntryHolder
- org.hyperledger.fabric.protos.orderer.Ab$SeekNewest$Builder
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Response$Builder
- org.hyperledger.fabric.protos.common.Common$BlockData$Builder
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPRoleOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalPackage$ProposalOrBuilder
- org.hyperledger.fabric.protos.common.Common
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$Builder
- org.hyperledger.fabric.protos.peer.ProposalPackage$Proposal
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageConnectOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpec$Type
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ResponseOrBuilder
- org.hyperledger.fabric.protos.orderer.Configuration$KafkaBrokers$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$ValuesDefaultEntryHolder
- org.hyperledger.fabric.protos.common.Common$LastConfig
- org.hyperledger.fabric.protos.peer.EventsPackage$FilteredBlock
- org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionOrBuilder
- org.hyperledger.fabric.protos.peer.Peer$PeerID$Builder
- org.hyperledger.fabric.protos.common.Configuration$OrdererAddressesOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekPositionOrBuilder
- org.hyperledger.fabric.protos.orderer.Configuration$BatchTimeout$Builder
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponsePayload
- org.hyperledger.fabric.protos.common.Common$ChannelHeaderOrBuilder
- org.hyperledger.fabric.protos.common.Common$Envelope$Builder
- org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeEndorsedAction
- org.hyperledger.fabric.protos.peer.ProposalPackage
- org.hyperledger.fabric.protos.common.Common$SignatureHeaderOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$ChaincodeReg
- org.hyperledger.fabric.protos.peer.EventsPackage$Interest
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayload$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateEnvelopeOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInvocationSpec
- org.hyperledger.fabric.protos.common.Ledger$BlockchainInfo
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageTimeToCutOrBuilder
- org.hyperledger.fabric.protos.common.Common$BlockOrBuilder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageOrBuilder
- org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelResponse
- org.hyperledger.fabric.protos.common.MspPrincipal
- org.hyperledger.fabric.protos.orderer.Ab$BroadcastResponse
- org.hyperledger.fabric.protos.peer.Peer$PeerIDOrBuilder
- org.hyperledger.fabric.protos.orderer.Configuration$BatchTimeoutOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPSignerConfigOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$Event$EventCase
- org.hyperledger.fabric.protos.common.Ledger$BlockchainInfoOrBuilder
- org.hyperledger.fabric.protos.common.Common$Header$Builder
- org.hyperledger.fabric.protos.peer.SignedCcDepSpec
- org.hyperledger.fabric.protos.orderer.Ab$SeekNewest
- org.hyperledger.fabric.protos.peer.Query$ChannelInfoOrBuilder
- org.hyperledger.fabric.protos.peer.Peer$PeerID
- org.hyperledger.fabric.protos.peer.EventsPackage$SignedEvent
- org.hyperledger.fabric.protos.orderer.Ab$DeliverResponseOrBuilder
- org.hyperledger.fabric.protos.peer.TransactionPackage
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResultBytes
- org.hyperledger.fabric.protos.peer.ChaincodeShim
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessage$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigEnvelope
- org.hyperledger.fabric.protos.peer.Chaincode$ConfidentialityLevel
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateEnvelope$Builder
- org.hyperledger.fabric.protos.orderer.Ab$SeekInfo$Builder
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponsePayload$Builder
- org.hyperledger.fabric.protos.common.Common$MetadataSignature
- org.hyperledger.fabric.protos.common.Configtx$ConfigPolicySchema
- org.hyperledger.fabric.protos.peer.EventsPackage$Register
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegular$Builder
- org.hyperledger.fabric.protos.peer.EventsPackage$RejectionOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpecOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeActionOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalPackage$SignedProposal
- org.hyperledger.fabric.protos.peer.Query$ChannelQueryResponse
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInput$Builder
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Endorsement
- org.hyperledger.fabric.protos.peer.EventsPackage$SignedEventOrBuilder
- org.hyperledger.fabric.protos.common.Common$LastConfig$Builder
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicyOrBuilder
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeHeaderExtensionOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekPosition
- org.hyperledger.fabric.protos.peer.Query$ChaincodeInfo
- org.hyperledger.fabric.protos.peer.AdminPackage
- org.hyperledger.fabric.protos.peer.EventsPackage$ChaincodeReg$Builder
- org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicy$Rule
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdate$Builder
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPRole$MSPRoleType
- org.hyperledger.fabric.protos.peer.EventsPackage$RegisterOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPSignerConfig
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdate
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponsePayloadOrBuilder
- org.hyperledger.fabric.protos.peer.Configuration$AnchorPeer$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigType
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInput$DecorationsDefaultEntryHolder
- org.hyperledger.fabric.protos.peer.EventsPackage$EventType
- org.hyperledger.fabric.protos.common.Configtx
- org.hyperledger.fabric.protos.common.Common$Status
- org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateClose
- org.hyperledger.fabric.protos.orderer.Ab$SeekOldestOrBuilder
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipalOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$FilteredTransaction$Builder
- org.hyperledger.fabric.protos.peer.Query$ChannelInfo
- org.hyperledger.fabric.protos.peer.EventsPackage$EventOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeID$Builder
- org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatus
- org.hyperledger.fabric.protos.peer.EventsPackage$Interest$Builder
- org.hyperledger.fabric.protos.common.Common$BlockData
- org.hyperledger.fabric.protos.common.MspPrincipal$MSPRole
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponse$Builder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpec
- org.hyperledger.fabric.protos.common.Configuration$Consortium$Builder
- org.hyperledger.fabric.protos.peer.Query$ChaincodeInfoOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekInfo$SeekBehavior
- org.hyperledger.fabric.protos.common.MspPrincipal$OrganizationUnit$Builder
- org.hyperledger.fabric.protos.peer.Configuration
- org.hyperledger.fabric.protos.peer.Query$ChannelQueryResponseOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$SeekNewestOrBuilder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPConfig$Builder
- org.hyperledger.fabric.protos.peer.EventsPackage$FilteredBlock$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessage$Builder
- org.hyperledger.fabric.protos.peer.EventsPackage$ChaincodeRegOrBuilder
- org.hyperledger.fabric.protos.common.Configtx$ConfigValueSchemaOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$Unregister$Builder
- org.hyperledger.fabric.protos.common.Policies$Policy$PolicyType
- org.hyperledger.fabric.protos.common.Common$EnvelopeOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpec$Builder
- org.hyperledger.fabric.protos.common.Configuration$Capabilities$Builder
- org.hyperledger.fabric.protos.common.Configtx$Config$Builder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageConnect$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetQueryResult$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigPolicy
- org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionActionOrBuilder
- org.hyperledger.fabric.protos.peer.Peer$PeerEndpoint
- org.hyperledger.fabric.protos.common.Configuration$BlockDataHashingStructure
- org.hyperledger.fabric.protos.orderer.Configuration$KafkaBrokersOrBuilder
- org.hyperledger.fabric.protos.peer.Configuration$AnchorPeers$Builder
- org.hyperledger.fabric.protos.peer.EventsPackage$Register$Builder
- org.hyperledger.fabric.protos.orderer.Ab
- org.hyperledger.fabric.protos.common.Common$SignatureHeader$Builder
- org.hyperledger.fabric.protos.peer.Query$ChannelInfo$Builder
- org.hyperledger.fabric.protos.msp.MspConfigPackage$SigningIdentityInfo
- org.hyperledger.fabric.protos.msp.MspConfigPackage$MSPConfigOrBuilder
- org.hyperledger.fabric.protos.peer.Query
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricOUIdentifier$Builder
- org.hyperledger.fabric.protos.orderer.Ab$SeekInfo
- org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricCryptoConfig$Builder
- org.hyperledger.fabric.protos.common.Common$BlockMetadata
- org.hyperledger.fabric.protos.peer.Resources
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayload
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessage$TypeCase
- org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionAction$Builder
- org.hyperledger.fabric.protos.orderer.Configuration$BatchSize
- org.hyperledger.fabric.protos.common.Common$HeaderOrBuilder
- org.hyperledger.fabric.protos.msp.Identities$SerializedIdentity
- org.hyperledger.fabric.protos.msp.MspConfigPackage$KeyInfo$Builder
- org.hyperledger.fabric.protos.peer.Query$ChaincodeQueryResponseOrBuilder
- org.hyperledger.fabric.protos.msp.Identities
- org.hyperledger.fabric.protos.peer.TransactionPackage$TxValidationCode
- org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponse
- org.hyperledger.fabric.protos.peer.ChaincodeEventPackage$ChaincodeEvent
- org.hyperledger.fabric.protos.peer.ChaincodeShim$GetHistoryForKeyOrBuilder
- org.hyperledger.fabric.protos.peer.Resources$Resource$Builder
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$Builder
- org.hyperledger.fabric.protos.common.Common$MetadataOrBuilder
- org.hyperledger.fabric.protos.peer.Query$ChaincodeQueryResponse$Builder
- org.hyperledger.fabric.protos.common.Configuration$HashingAlgorithm
- org.hyperledger.fabric.protos.peer.EventsPackage$FilteredTransactionOrBuilder
- org.hyperledger.fabric.protos.common.Configuration$Consortium
- org.hyperledger.fabric.protos.common.Configtx$ConfigEnvelopeOrBuilder
- org.hyperledger.fabric.protos.common.MspPrincipal$OrganizationUnit
- org.hyperledger.fabric.protos.peer.ProposalPackage$SignedProposal$Builder
- org.hyperledger.fabric.protos.peer.Configuration$AnchorPeer
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInput
- org.hyperledger.fabric.protos.msp.Identities$SerializedIdentity$Builder
- org.hyperledger.fabric.protos.peer.TransactionPackage$Transaction$Builder
- org.hyperledger.fabric.protos.common.Common$ChannelHeader$Builder
- org.hyperledger.fabric.protos.peer.Configuration$AnchorPeersOrBuilder
- org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateOrBuilder
- org.hyperledger.fabric.protos.peer.EventsPackage$Event$Builder
- org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeHeaderExtension$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessageOrBuilder
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpec
- org.hyperledger.fabric.protos.peer.EventsPackage$Rejection
- org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicy
- org.hyperledger.fabric.protos.peer.ChaincodeShim$PutStateInfo
- org.hyperledger.fabric.protos.msp.MspConfigPackage
- org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$TypeCase
- org.hyperledger.fabric.protos.common.Configuration$Capability$Builder
- org.hyperledger.fabric.protos.peer.Peer$PeerEndpoint$Builder
- org.hyperledger.fabric.protos.peer.ChaincodeEventPackage$ChaincodeEvent$Builder
- org.hyperledger.fabric.protos.common.Configuration$CapabilityOrBuilder
- org.hyperledger.fabric.protos.orderer.Ab$DeliverResponse$TypeCase
- org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema
- org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeIDOrBuilder
- org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageConnect
- org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatus$StatusCode)
+;; Copyright 2017 Jong-won Choi <oz.jongwon.choi@gmail.com>
+;;
+;; Licensed under the Apache License, Version 2.0 (the "License")
+;; you may not use this file except in compliance with the License.
+;; You may obtain a copy of the License at
+;;
+;;     http://www.apache.org/licenses/LICENSE-2.0
+;;
+;; Unless required by applicable law or agreed to in writing, software
+;; distributed under the License is distributed on an "AS IS" BASIS,
+;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+;; See the License for the specific language governing permissions and
+;; limitations under the License.
+
+;;
+;; This is generated code (and some decoration changes).
+;; Do not change.
+;;
+(ns clojure-fabric.wrappers
+  (:import
+   org.hyperledger.fabric.protos.common.Common$Block
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeActionPayload$Builder
+   org.hyperledger.fabric.protos.peer.Query$ChannelQueryResponse$Builder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicy
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInputOrBuilder
+   org.hyperledger.fabric.protos.msp.Identities$SerializedIdentityOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetStateByRangeOrBuilder
+   org.hyperledger.fabric.protos.peer.Resources$ResourceOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPConfig
+   org.hyperledger.fabric.protos.orderer.Ab$BroadcastResponseOrBuilder
+   org.hyperledger.fabric.protos.common.Common$BlockMetadataOrBuilder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigPolicySchema$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigSignature$Builder
+   org.hyperledger.fabric.protos.orderer.Configuration$ConsensusType$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigPolicy$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateNext
+   org.hyperledger.fabric.protos.common.Configuration$BlockDataHashingStructure$Builder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMetadata
+   org.hyperledger.fabric.protos.common.Configuration$Capabilities
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Response
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateNextOrBuilder
+   org.hyperledger.fabric.protos.peer.Configuration$AnchorPeerOrBuilder
+   org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelResponseOrBuilder
+   org.hyperledger.fabric.protos.msp.Identities$SerializedIdemixIdentityOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$FilteredBlockOrBuilder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigPolicyOrBuilder
+   org.hyperledger.fabric.protos.peer.Peer$PeerEndpointOrBuilder
+   org.hyperledger.fabric.protos.peer.SignedCcDepSpec$SignedChaincodeDeploymentSpec$Builder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricOUIdentifier
+   org.hyperledger.fabric.protos.common.Common$Metadata
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageTimeToCut$Builder
+   org.hyperledger.fabric.protos.common.Ledger
+   org.hyperledger.fabric.protos.orderer.Configuration$BatchTimeout
+   org.hyperledger.fabric.protos.peer.SignedCcDepSpec$SignedChaincodeDeploymentSpecOrBuilder
+   org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelRequest$Builder
+   org.hyperledger.fabric.protos.peer.Chaincode
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpec$ExecutionEnvironment
+   org.hyperledger.fabric.protos.common.Common$MetadataSignatureOrBuilder
+   org.hyperledger.fabric.protos.peer.Configuration$AnchorPeers
+   org.hyperledger.fabric.protos.common.Configtx$ConfigSignatureOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$PutStateInfo$Builder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMetadataOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetStateByRange$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$GroupsDefaultEntryHolder
+   org.hyperledger.fabric.protos.common.Common$SignatureHeader
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricCryptoConfig
+   org.hyperledger.fabric.protos.common.Common$Payload$Builder
+   org.hyperledger.fabric.protos.msp.Identities$SerializedIdemixIdentity
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeEndorsedAction$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessage$Type
+   org.hyperledger.fabric.protos.orderer.Configuration$ConsensusType
+   org.hyperledger.fabric.protos.orderer.Ab$SeekPosition$TypeCase
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateEnvelope
+   org.hyperledger.fabric.protos.msp.Identities$SerializedIdemixIdentity$Builder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$NOutOf
+   org.hyperledger.fabric.protos.peer.TransactionPackage$SignedTransactionOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpecOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekOldest
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdate$IsolatedDataDefaultEntryHolder
+   org.hyperledger.fabric.protos.common.Common$Payload
+   org.hyperledger.fabric.protos.peer.TransactionPackage$SignedTransaction
+   org.hyperledger.fabric.protos.common.Common$BlockHeader
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipal$Classification
+   org.hyperledger.fabric.protos.orderer.Configuration$KafkaBrokers
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricOUIdentifierOrBuilder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$NOutOfOrBuilder
+   org.hyperledger.fabric.protos.orderer.Configuration$ConsensusTypeOrBuilder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegularOrBuilder
+   org.hyperledger.fabric.protos.common.Common$BlockMetadataIndex
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpec$Builder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeEndorsedActionOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$InterestOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekOldest$Builder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessage
+   org.hyperledger.fabric.protos.peer.EventsPackage$Rejection$Builder
+   org.hyperledger.fabric.protos.common.Configuration$BlockDataHashingStructureOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResultBytesOrBuilder
+   org.hyperledger.fabric.protos.common.Common$Envelope
+   org.hyperledger.fabric.protos.peer.ProposalPackage$Proposal$Builder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$SignedTransaction$Builder
+   org.hyperledger.fabric.protos.peer.EventsPackage$SignedEvent$Builder
+   org.hyperledger.fabric.protos.common.Configuration$Capabilities$CapabilitiesDefaultEntryHolder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigPolicySchemaOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Endorsement$Builder
+   org.hyperledger.fabric.protos.peer.Resources$Resource
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$ValuesDefaultEntryHolder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessage
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResponse
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegular
+   org.hyperledger.fabric.protos.peer.TransactionPackage$Transaction
+   org.hyperledger.fabric.protos.common.Configtx$ConfigValueOrBuilder
+   org.hyperledger.fabric.protos.common.Common$MetadataSignature$Builder
+   org.hyperledger.fabric.protos.common.Policies
+   org.hyperledger.fabric.protos.common.Ledger$BlockchainInfo$Builder
+   org.hyperledger.fabric.protos.peer.Query$ChaincodeInfo$Builder
+   org.hyperledger.fabric.protos.orderer.Configuration$ChannelRestrictions$Builder
+   org.hyperledger.fabric.protos.common.Policies$Policy$Builder
+   org.hyperledger.fabric.protos.peer.Peer
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResponse$Builder
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$EndorsementOrBuilder
+   org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicyOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateNext$Builder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$SigningIdentityInfoOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateCloseOrBuilder
+   org.hyperledger.fabric.protos.common.Configuration$Capability
+   org.hyperledger.fabric.protos.common.Configtx$ConfigEnvelope$Builder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInvocationSpec$Builder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicyEnvelopeOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$MSPConfig
+   org.hyperledger.fabric.protos.common.Configuration$OrdererAddresses$Builder
+   org.hyperledger.fabric.protos.common.Common$BlockDataOrBuilder
+   org.hyperledger.fabric.protos.orderer.Kafka
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ProcessedTransactionOrBuilder
+   org.hyperledger.fabric.protos.common.Common$LastConfigOrBuilder
+   org.hyperledger.fabric.protos.common.Common$Header
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$Builder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageTimeToCut
+   org.hyperledger.fabric.protos.common.Policies$PolicyOrBuilder
+   org.hyperledger.fabric.protos.common.Common$Metadata$Builder
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipal
+   org.hyperledger.fabric.protos.common.Configtx$Config
+   org.hyperledger.fabric.protos.orderer.Ab$BroadcastResponse$Builder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$NOutOf$Builder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeActionPayload
+   org.hyperledger.fabric.protos.common.Configuration$HashingAlgorithm$Builder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeID
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeHeaderExtension
+   org.hyperledger.fabric.protos.orderer.Ab$SeekSpecifiedOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetQueryResult
+   org.hyperledger.fabric.protos.common.Common$BlockHeader$Builder
+   org.hyperledger.fabric.protos.common.Common$HeaderType
+   org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelRequestOrBuilder
+   org.hyperledger.fabric.protos.common.MspPrincipal$OrganizationUnitOrBuilder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicyEnvelope$Builder
+   org.hyperledger.fabric.protos.orderer.Configuration$ChannelRestrictions
+   org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionAction
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeActionPayloadOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$SignedProposalOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$Event
+   org.hyperledger.fabric.protos.common.Policies$Policy
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPSignerConfig$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetQueryResultOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResponseOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekInfoOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResultBytes$Builder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricMSPConfigOrBuilder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchemaOrBuilder
+   org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicy$Builder
+   org.hyperledger.fabric.protos.common.Configuration$OrdererAddresses
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipal$Builder
+   org.hyperledger.fabric.protos.orderer.Ab$DeliverResponse
+   org.hyperledger.fabric.protos.orderer.Configuration$BatchSizeOrBuilder
+   org.hyperledger.fabric.protos.common.Common$BlockHeaderOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$Unregister
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$KeyInfoOrBuilder
+   org.hyperledger.fabric.protos.peer.SignedCcDepSpec$SignedChaincodeDeploymentSpec
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayloadOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricCryptoConfigOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateClose$Builder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricMSPConfig
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInvocationSpecOrBuilder
+   org.hyperledger.fabric.protos.orderer.Configuration$BatchSize$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigValue
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$GroupsDefaultEntryHolder
+   org.hyperledger.fabric.protos.peer.ChaincodeEventPackage
+   org.hyperledger.fabric.protos.peer.EventsPackage$Interest$RegInfoCase
+   org.hyperledger.fabric.protos.common.Common$PayloadOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$FilteredTransaction
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponseOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$UnregisterOrBuilder
+   org.hyperledger.fabric.protos.common.Common$BlockMetadata$Builder
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPRole$Builder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekSpecified
+   org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatus$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroup
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricMSPConfig$Builder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekSpecified$Builder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekPosition$Builder
+   org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatusOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$MSPConfig$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeEventPackage$ChaincodeEventOrBuilder
+   org.hyperledger.fabric.protos.common.Common$ChannelHeader
+   org.hyperledger.fabric.protos.peer.Query$ChaincodeQueryResponse
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegular$Class
+   org.hyperledger.fabric.protos.common.Common$Block$Builder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicyEnvelope
+   org.hyperledger.fabric.protos.orderer.Configuration$ChannelRestrictionsOrBuilder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigValueSchema$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigOrBuilder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetHistoryForKey
+   org.hyperledger.fabric.protos.common.Configtx$ConfigValue$Builder
+   org.hyperledger.fabric.protos.common.Configuration$HashingAlgorithmOrBuilder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMetadata$Builder
+   org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelResponse$Builder
+   org.hyperledger.fabric.protos.common.Configuration$ConsortiumOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPConfigOrBuilder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ProcessedTransaction
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeAction
+   org.hyperledger.fabric.protos.common.Configuration$CapabilitiesOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$DeliverResponse$Builder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeAction$Builder
+   org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelRequest
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$PutStateInfoOrBuilder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ProcessedTransaction$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetHistoryForKey$Builder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$KeyInfo
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayload$TransientMapDefaultEntryHolder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$PoliciesDefaultEntryHolder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetStateByRange
+   org.hyperledger.fabric.protos.common.Configtx$ConfigValueSchema
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$SigningIdentityInfo$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigSignature
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$PoliciesDefaultEntryHolder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekNewest$Builder
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Response$Builder
+   org.hyperledger.fabric.protos.common.Common$BlockData$Builder
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPRoleOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ProposalOrBuilder
+   org.hyperledger.fabric.protos.common.Common
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroup$Builder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$Proposal
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageConnectOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpec$Type
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ResponseOrBuilder
+   org.hyperledger.fabric.protos.orderer.Configuration$KafkaBrokers$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$ValuesDefaultEntryHolder
+   org.hyperledger.fabric.protos.common.Common$LastConfig
+   org.hyperledger.fabric.protos.peer.EventsPackage$FilteredBlock
+   org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionOrBuilder
+   org.hyperledger.fabric.protos.peer.Peer$PeerID$Builder
+   org.hyperledger.fabric.protos.common.Configuration$OrdererAddressesOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekPositionOrBuilder
+   org.hyperledger.fabric.protos.orderer.Configuration$BatchTimeout$Builder
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponsePayload
+   org.hyperledger.fabric.protos.common.Common$ChannelHeaderOrBuilder
+   org.hyperledger.fabric.protos.common.Common$Envelope$Builder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$ChaincodeEndorsedAction
+   org.hyperledger.fabric.protos.peer.ProposalPackage
+   org.hyperledger.fabric.protos.common.Common$SignatureHeaderOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$ChaincodeReg
+   org.hyperledger.fabric.protos.peer.EventsPackage$Interest
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayload$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateEnvelopeOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInvocationSpec
+   org.hyperledger.fabric.protos.common.Ledger$BlockchainInfo
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageTimeToCutOrBuilder
+   org.hyperledger.fabric.protos.common.Common$BlockOrBuilder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageOrBuilder
+   org.hyperledger.fabric.protos.peer.AdminPackage$LogLevelResponse
+   org.hyperledger.fabric.protos.common.MspPrincipal
+   org.hyperledger.fabric.protos.orderer.Ab$BroadcastResponse
+   org.hyperledger.fabric.protos.peer.Peer$PeerIDOrBuilder
+   org.hyperledger.fabric.protos.orderer.Configuration$BatchTimeoutOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPSignerConfigOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$Event$EventCase
+   org.hyperledger.fabric.protos.common.Ledger$BlockchainInfoOrBuilder
+   org.hyperledger.fabric.protos.common.Common$Header$Builder
+   org.hyperledger.fabric.protos.peer.SignedCcDepSpec
+   org.hyperledger.fabric.protos.orderer.Ab$SeekNewest
+   org.hyperledger.fabric.protos.peer.Query$ChannelInfoOrBuilder
+   org.hyperledger.fabric.protos.peer.Peer$PeerID
+   org.hyperledger.fabric.protos.peer.EventsPackage$SignedEvent
+   org.hyperledger.fabric.protos.orderer.Ab$DeliverResponseOrBuilder
+   org.hyperledger.fabric.protos.peer.TransactionPackage
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryResultBytes
+   org.hyperledger.fabric.protos.peer.ChaincodeShim
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessage$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigEnvelope
+   org.hyperledger.fabric.protos.peer.Chaincode$ConfidentialityLevel
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateEnvelope$Builder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekInfo$Builder
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponsePayload$Builder
+   org.hyperledger.fabric.protos.common.Common$MetadataSignature
+   org.hyperledger.fabric.protos.common.Configtx$ConfigPolicySchema
+   org.hyperledger.fabric.protos.peer.EventsPackage$Register
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageRegular$Builder
+   org.hyperledger.fabric.protos.peer.EventsPackage$RejectionOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpecOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeActionOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$SignedProposal
+   org.hyperledger.fabric.protos.peer.Query$ChannelQueryResponse
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInput$Builder
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$Endorsement
+   org.hyperledger.fabric.protos.peer.EventsPackage$SignedEventOrBuilder
+   org.hyperledger.fabric.protos.common.Common$LastConfig$Builder
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicyOrBuilder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeHeaderExtensionOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekPosition
+   org.hyperledger.fabric.protos.peer.Query$ChaincodeInfo
+   org.hyperledger.fabric.protos.peer.AdminPackage
+   org.hyperledger.fabric.protos.peer.EventsPackage$ChaincodeReg$Builder
+   org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicy$Rule
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdate$Builder
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPRole$MSPRoleType
+   org.hyperledger.fabric.protos.peer.EventsPackage$RegisterOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPSignerConfig
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdate
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponsePayloadOrBuilder
+   org.hyperledger.fabric.protos.peer.Configuration$AnchorPeer$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigType
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInput$DecorationsDefaultEntryHolder
+   org.hyperledger.fabric.protos.peer.EventsPackage$EventType
+   org.hyperledger.fabric.protos.common.Configtx
+   org.hyperledger.fabric.protos.common.Common$Status
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$QueryStateClose
+   org.hyperledger.fabric.protos.orderer.Ab$SeekOldestOrBuilder
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPPrincipalOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$FilteredTransaction$Builder
+   org.hyperledger.fabric.protos.peer.Query$ChannelInfo
+   org.hyperledger.fabric.protos.peer.EventsPackage$EventOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeID$Builder
+   org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatus
+   org.hyperledger.fabric.protos.peer.EventsPackage$Interest$Builder
+   org.hyperledger.fabric.protos.common.Common$BlockData
+   org.hyperledger.fabric.protos.common.MspPrincipal$MSPRole
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponse$Builder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpec
+   org.hyperledger.fabric.protos.common.Configuration$Consortium$Builder
+   org.hyperledger.fabric.protos.peer.Query$ChaincodeInfoOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekInfo$SeekBehavior
+   org.hyperledger.fabric.protos.common.MspPrincipal$OrganizationUnit$Builder
+   org.hyperledger.fabric.protos.peer.Configuration
+   org.hyperledger.fabric.protos.peer.Query$ChannelQueryResponseOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekNewestOrBuilder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$IdemixMSPConfig$Builder
+   org.hyperledger.fabric.protos.peer.EventsPackage$FilteredBlock$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessage$Builder
+   org.hyperledger.fabric.protos.peer.EventsPackage$ChaincodeRegOrBuilder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigValueSchemaOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$Unregister$Builder
+   org.hyperledger.fabric.protos.common.Policies$Policy$PolicyType
+   org.hyperledger.fabric.protos.common.Common$EnvelopeOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeDeploymentSpec$Builder
+   org.hyperledger.fabric.protos.common.Configuration$Capabilities$Builder
+   org.hyperledger.fabric.protos.common.Configtx$Config$Builder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageConnect$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetQueryResult$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigPolicy
+   org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionActionOrBuilder
+   org.hyperledger.fabric.protos.peer.Peer$PeerEndpoint
+   org.hyperledger.fabric.protos.common.Configuration$BlockDataHashingStructure
+   org.hyperledger.fabric.protos.orderer.Configuration$KafkaBrokersOrBuilder
+   org.hyperledger.fabric.protos.peer.Configuration$AnchorPeers$Builder
+   org.hyperledger.fabric.protos.peer.EventsPackage$Register$Builder
+   org.hyperledger.fabric.protos.orderer.Ab
+   org.hyperledger.fabric.protos.common.Common$SignatureHeader$Builder
+   org.hyperledger.fabric.protos.peer.Query$ChannelInfo$Builder
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$SigningIdentityInfo
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$MSPConfigOrBuilder
+   org.hyperledger.fabric.protos.peer.Query
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricOUIdentifier$Builder
+   org.hyperledger.fabric.protos.orderer.Ab$SeekInfo
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$FabricCryptoConfig$Builder
+   org.hyperledger.fabric.protos.common.Common$BlockMetadata
+   org.hyperledger.fabric.protos.peer.Resources
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeProposalPayload
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessage$TypeCase
+   org.hyperledger.fabric.protos.peer.TransactionPackage$TransactionAction$Builder
+   org.hyperledger.fabric.protos.orderer.Configuration$BatchSize
+   org.hyperledger.fabric.protos.common.Common$HeaderOrBuilder
+   org.hyperledger.fabric.protos.msp.Identities$SerializedIdentity
+   org.hyperledger.fabric.protos.msp.MspConfigPackage$KeyInfo$Builder
+   org.hyperledger.fabric.protos.peer.Query$ChaincodeQueryResponseOrBuilder
+   org.hyperledger.fabric.protos.msp.Identities
+   org.hyperledger.fabric.protos.peer.TransactionPackage$TxValidationCode
+   org.hyperledger.fabric.protos.peer.ProposalResponsePackage$ProposalResponse
+   org.hyperledger.fabric.protos.peer.ChaincodeEventPackage$ChaincodeEvent
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$GetHistoryForKeyOrBuilder
+   org.hyperledger.fabric.protos.peer.Resources$Resource$Builder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema$Builder
+   org.hyperledger.fabric.protos.common.Common$MetadataOrBuilder
+   org.hyperledger.fabric.protos.peer.Query$ChaincodeQueryResponse$Builder
+   org.hyperledger.fabric.protos.common.Configuration$HashingAlgorithm
+   org.hyperledger.fabric.protos.peer.EventsPackage$FilteredTransactionOrBuilder
+   org.hyperledger.fabric.protos.common.Configuration$Consortium
+   org.hyperledger.fabric.protos.common.Configtx$ConfigEnvelopeOrBuilder
+   org.hyperledger.fabric.protos.common.MspPrincipal$OrganizationUnit
+   org.hyperledger.fabric.protos.peer.ProposalPackage$SignedProposal$Builder
+   org.hyperledger.fabric.protos.peer.Configuration$AnchorPeer
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeInput
+   org.hyperledger.fabric.protos.msp.Identities$SerializedIdentity$Builder
+   org.hyperledger.fabric.protos.peer.TransactionPackage$Transaction$Builder
+   org.hyperledger.fabric.protos.common.Common$ChannelHeader$Builder
+   org.hyperledger.fabric.protos.peer.Configuration$AnchorPeersOrBuilder
+   org.hyperledger.fabric.protos.common.Configtx$ConfigUpdateOrBuilder
+   org.hyperledger.fabric.protos.peer.EventsPackage$Event$Builder
+   org.hyperledger.fabric.protos.peer.ProposalPackage$ChaincodeHeaderExtension$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$ChaincodeMessageOrBuilder
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeSpec
+   org.hyperledger.fabric.protos.peer.EventsPackage$Rejection
+   org.hyperledger.fabric.protos.common.Policies$ImplicitMetaPolicy
+   org.hyperledger.fabric.protos.peer.ChaincodeShim$PutStateInfo
+   org.hyperledger.fabric.protos.msp.MspConfigPackage
+   org.hyperledger.fabric.protos.common.Policies$SignaturePolicy$TypeCase
+   org.hyperledger.fabric.protos.common.Configuration$Capability$Builder
+   org.hyperledger.fabric.protos.peer.Peer$PeerEndpoint$Builder
+   org.hyperledger.fabric.protos.peer.ChaincodeEventPackage$ChaincodeEvent$Builder
+   org.hyperledger.fabric.protos.common.Configuration$CapabilityOrBuilder
+   org.hyperledger.fabric.protos.orderer.Ab$DeliverResponse$TypeCase
+   org.hyperledger.fabric.protos.common.Configtx$ConfigGroupSchema
+   org.hyperledger.fabric.protos.peer.Chaincode$ChaincodeIDOrBuilder
+   org.hyperledger.fabric.protos.orderer.Kafka$KafkaMessageConnect
+   org.hyperledger.fabric.protos.peer.AdminPackage$ServerStatus$StatusCode))
+

 ;;;  getEndorsementOrBuilder
 (defn


redo generated build.boot

redo generated build.boot

--- resources/boot/new/cljs_exe/build.boot
+++ resources/boot/new/cljs_exe/build.boot
@@ -12,12 +12,24 @@
                  [org.clojure/core.async    "0.3.443"]
                  [org.clojure/tools.cli     "0.3.5"]])

+(def js-dependencies {:nexe "2.0.0-rc.11"})
+
 (require
  '[adzerk.boot-cljs      :refer [cljs]]
  '[adzerk.boot-cljs-repl :refer [cljs-repl start-repl]]
  '[adzerk.boot-reload    :refer [reload]])

-(deftask build []
+(task-options! cljs {:compiler-options
+                     {:optimizations :none
+                      :target :nodejs
+                      :npm-deps js-dependencies
+                      :install-deps true
+                      :source-map true
+                      :hashbang false}})
+
+(deftask build
+  "compile cljs to js with default cljs compiler settings"
+  []
   (comp (speak)
         (cljs)
         (target :dir #{"target"})))
@@ -28,42 +40,32 @@
         (reload)
         (build)))

-(deftask production []
-  (task-options! cljs {:compiler-options
-                       {:optimizations :simple
-                        :target :nodejs
-                        :hashbang false}})
-  identity)
-
-(deftask development []
-  (task-options! cljs {:compiler-options
-                       {:optimizations :none
-                        :source-map true
-                        :target :nodejs
-                        :hashbang false}}
-                 reload {:on-jsload '{{name}}.core/-main})
+(deftask production
+  "adjust cljs compiler options for production"
+  []
+  (task-options! cljs (fn [opts]
+                        (-> opts
+                            (assoc-in [:compiler-options :optimizations]
+                                      :simple)
+                            (update-in [:compiler-options] dissoc :source-map))))
   identity)

 (deftask dev
-  "Simple alias to run application in development mode"
+  "watch and rebuild the project with development cljs presets"
   []
   (comp (watch)
-        (development)
         (build)))

-(deftask setup
-  "use yarn to fetch and install required nodejs dependencies"
+(deftask binary
+  "use nexe to package js into a binary"
   []
-  ((sh "yarn")))
+  (with-pre-wrap fileset
+    ((sh "node" "scripts/build.js"))
+    (commit! fileset)))

-(deftask release
-  "compile clojurescript to javascript with production settings"
+(deftask package
+  "compile clojurescript to javascript with production settings and output a native binary"
   []
   (comp (production)
-        (build)))
-
-(deftask package
-  "use nexe to package js into a binary"
-  []
-  ((sh "node" "scripts/build.js")))
-
+        (build)
+        (binary)))


Tipdy up

Tipdy up

--- src/discuss/references/main.cljs
+++ src/discuss/references/main.cljs
@@ -80,9 +80,6 @@
    entry point for this decision."
   [data]
   (reify
-    om/IWillUnmount
-    (will-unmount [this]
-      (println "aaaaaaaaaaahahaha i am going to die!!!!"))
     om/IRender
     (render [_]
       (dom/div nil


Refactoring: create-error-response function

--- src/emender_jenkins/rest_api.clj
+++ src/emender_jenkins/rest_api.clj
@@ -102,7 +102,7 @@
     (let [response @results/results]
         (send-response response request)))

-(defn error-response
+(defn create-error-response
     [job-name command message]
     {:status "error"
      :job-name job-name
@@ -111,11 +111,11 @@

 (defn job-does-not-exist-response
     [job-name command]
-    (error-response job-name command "Job does not exist"))
+    (create-error-response job-name command "Job does not exist"))

 (defn job-already-exist-response
     [job-name command]
-    (error-response job-name command "Job already exist"))
+    (create-error-response job-name command "Job already exist"))

 (defn start-job
     [request]
@@ -182,10 +182,10 @@
                                                 job-name git-repo branch)
                         (reload-job-list request)
                         (send-response request))
-                    (-> (error-response (or job-name "not set!") "create" "invalid input")
+                    (-> (create-error-response (or job-name "not set!") "create" "invalid input")
                         (send-error-response request)))))
         (catch Exception e
-                (-> (error-response "not set!" "create" "invalid input")
+                (-> (create-error-response "not set!" "create" "invalid input")
                     (send-error-response request)))))

 (defn uri->job-name
@@ -222,12 +222,12 @@
                                                 job-name git-repo branch)
                         ;(reload-job-list request)
                         (send-response request))
-                    (-> (error-response (or job-name "not set!") "update" "invalid input")
+                    (-> (create-error-response (or job-name "not set!") "update" "invalid input")
                         (send-error-response request)))
                 (-> (job-does-not-exist-response job-name "update")
                     (send-error-response request))))
         (catch Exception e
-                (-> (error-response "not set!" "update" "invalid input")
+                (-> (create-error-response "not set!" "update" "invalid input")
                     (send-error-response request)))))

 (defn get-jobs
@@ -245,7 +245,7 @@
             (let [job-results   (jenkins-api/read-job-results (config/get-jenkins-url request) job-name)]
                  (if job-results
                      (send-plain-response job-results)
-                     (-> (error-response job-name "get_job_results" "can not read test results")
+                     (-> (create-error-response job-name "get_job_results" "can not read test results")
                          (send-response request))))
             (-> (job-does-not-exist-response job-name "get_job_results")
                 (send-error-response request)))))


Removed message-box

Removed message-box

Signed-off-by: Daniel Borchmann <25857343a15bf1edafebc2912e82ecf775c585c1@mailbox.tu-dresden.de>

--- src/conexp/contrib/gui/util.clj
+++ src/conexp/contrib/gui/util.clj
@@ -116,13 +116,6 @@
              :on-close :dispose)
       pack!
       show!))
-
-(defn message-box
-  "Pops up a swing message box."
-  ([text title]
-     (JOptionPane/showMessageDialog nil (str text) (str title) 0))
-  ([text]
-     (JOptionPane/showMessageDialog nil (str text) "Info" 0)))

 (defn ^java.net.URL get-resource
   "Returns the URL of the given the resource res if found, nil otherwise."


Start with the closure of the empty set when computing the canonical base

found by Johannes Wollbold

Signed-off-by: Daniel Borchmann <25857343a15bf1edafebc2912e82ecf775c585c1@mailbox.tu-dresden.de>

--- src/conexp/fca/implications.clj
+++ src/conexp/fca/implications.clj
@@ -213,7 +213,7 @@
      (stem-base ctx #{}))
   ([ctx background-knowledge]
      (loop [implications background-knowledge,
-            last         #{}]
+            last         (close-under-implications background-knowledge #{})]
        (let [conclusion-from-last (context-attribute-closure ctx last),
              implications         (if (not= last conclusion-from-last)
                                     (conj implications


fix bug where zero length filter-lists would blow up if you pressed up or down

Signed-off-by: Chris Granger <5654cde260ae99bc4d30054171b8bcd902efd19a@gmail.com>

--- src/lt/objs/sidebar/command.cljs
+++ src/lt/objs/sidebar/command.cljs
@@ -118,16 +118,18 @@
 (behavior ::set-selection!
           :triggers #{:set-selection!}
           :reaction (fn [this idx]
-                      (when idx
-                        (let [cnt (count (:cur @this))
-                              neue-idx (mod idx (if (> cnt (:size @this))
+                      (let [cnt (count (:cur @this))
+                            neue-idx (when (> cnt 0)
+                                       (mod idx (if (> cnt (:size @this))
                                                   (:size @this)
-                                                  cnt))
-                              old (nth (:lis @this) (:selected @this))
-                              neue (nth (:lis @this) neue-idx)]
-                          (dom/remove-class old :selected)
-                          (dom/add-class neue :selected)
-                          (object/merge! this {:selected neue-idx})))))
+                                                  cnt)))]
+                        (when neue-idx
+                          (let [old (nth (:lis @this) (:selected @this))
+                                neue (nth (:lis @this) neue-idx)]
+                            (when neue
+                              (dom/remove-class old :selected)
+                              (dom/add-class neue :selected)
+                              (object/merge! this {:selected neue-idx})))))))

 (behavior ::change!
           :triggers #{:change!}


Add logs to debug flow-api call problem

Add logs to debug flow-api call problem

--- backend/src/akvo/lumen/http/client.clj
+++ backend/src/akvo/lumen/http/client.clj
@@ -2,6 +2,7 @@
   "wrapping http client calls so we have robust settings values"
   (:require
    [clj-http.client :as client]
+   [clojure.tools.logging :as log]
    [clj-http.conn-mgr :as http.conn-mgr]))

 (defn- default-connection-manager-opts
@@ -32,6 +33,7 @@
                              (some? (:socket-timeout %))))
 (defn get* [url opts]
   {:pre [(req-pre-condition opts)]}
+  (log/info :ulr url :opts opts)
   (client/get url opts))

 (defn post* [url opts]


Make pull request for with Clojure 1.5 etc.

--- src/midje/data/project_state.clj
+++ src/midje/data/project_state.clj
@@ -138,7 +138,7 @@
 (defn with-fresh-copy-of-dependency-map
   "Records must be recreated if the protocols that they implement are reloaded."
   [state]
-  (update state deps-key clojure.tools.namespace.dependency/map->MapDependencyGraph))
+  (update-in state [deps-key] clojure.tools.namespace.dependency/map->MapDependencyGraph))

 (defn mkfn:scan-and-react [options scanner]
   (fn []


Support for optional foreign keys gen

Support for optional foreign keys gen

Adds a flag to control generation of foreign keys inside migrations.

Takes the list of tables directly from the passed database.

--- src/migration_generator/core.clj
+++ src/migration_generator/core.clj
@@ -6,7 +6,8 @@
 (defn get-tables
   "Retrieves a list containing all tables in the database."
   [db]
-  (j/query db "show tables"))
+  (map (comp second first)
+       (j/query db "show tables")))

 (defn column-usage
   "Gets all the foreign keys declarations for a particular schema and table."
@@ -89,9 +90,15 @@
      :fields (map column-data without-pk)
      :fks fks}))

-(defn render-migration-content [table-data]
-  (selmer/render
-   "<?php
+(defn render-migration-content
+  ([table-data]
+   (render-migration-content table-data true))
+  ([table-data generate-fks]
+   (let [table-data (if generate-fks
+                      table-data
+                      (assoc table-data :fks []))]
+     (selmer/render
+      "<?php

 use Phinx\\Migration\\AbstractMigration;

@@ -117,7 +124,7 @@
             ->create();
     }
 }"
-   table-data))
+      table-data))))

 (defn migration-filename [table-name]
   (let [fmt (java.text.SimpleDateFormat. "yyyyMMddHHmmss")
@@ -128,21 +135,21 @@
                                                       name-parts)))]
     (str ts "_"  migration-name ".php")))

-(def tablenames
-  (str/split (slurp "/home/eduardo/Documentos/dep-ordered.csv") #"\n"))
-
 (defn -main
   "Takes a MySQL database connection configuration and a directory to output
   the Phinx migrations."
-  [host dbname user pass schema directory & more]
-  (let [db {:subprotocol "mysql"
-            :subname (str "//" host ":3306/" dbname)
-            :user user
-            :password pass}
-        tables (map #(table-data db schema %)
-                    (describe-tables db tablenames))]
+  [host dbname user pass schema directory generate-fk & more]
+  (let [db           {:subprotocol "mysql"
+                      :subname (str "//" host ":3306/" dbname)
+                      :user user
+                      :password pass}
+        generate-fks (if (= "true" generate-fk)
+                       true
+                       false)
+        tables       (map #(table-data db schema %)
+                          (describe-tables db (get-tables db)))]
     (doseq [table tables]
-      (let [fcontent (render-migration-content table)
+      (let [fcontent (render-migration-content table generate-fks)
             fname    (migration-filename (:table-name table))
             _        (Thread/sleep 1000) ; We need one second delay so the migration timestamp don't repeat!
             ]


Move batch-size lookup out of loop.

Move batch-size lookup out of loop.

--- src/onyx/messaging/netty_tcp.clj
+++ src/onyx/messaging/netty_tcp.clj
@@ -417,11 +417,12 @@

 (defmethod extensions/receive-messages NettyTcpSockets
   [messenger {:keys [onyx.core/task-map] :as event}]
-  (let [ms (or (:onyx/batch-timeout task-map) (:onyx/batch-timeout defaults))
+  (let [batch-size (:onyx/batch-size task-map)
+        ms (or (:onyx/batch-timeout task-map) (:onyx/batch-timeout defaults))
         ch (:inbound-ch (:onyx.core/messenger-buffer event))
         timeout-ch (timeout ms)]
     (loop [segments [] i 0]
-      (if (< i (:onyx/batch-size task-map))
+      (if (< i batch-size)
         (if-let [v (first (alts!! [ch timeout-ch]))]
           (recur (conj segments v) (inc i))
           segments)


Do compilation.

Do compilation.

--- src/onyx/peer/task_lifecycle.clj
+++ src/onyx/peer/task_lifecycle.clj
@@ -388,7 +388,7 @@
 (defn compile-pre-task-functions [lifecycles task-name]
   (compile-lifecycle-functions lifecycles task-name :lifecycle/pre))

-(defn compile-post-batch-task-functions [lifecycles task-name]
+(defn compile-pre-batch-task-functions [lifecycles task-name]
   (compile-lifecycle-functions lifecycles task-name :lifecycle/pre-batch))

 (defn compile-post-batch-task-functions [lifecycles task-name]
@@ -427,6 +427,10 @@
                            :onyx.core/catalog catalog
                            :onyx.core/workflow (extensions/read-chunk log :workflow job-id)
                            :onyx.core/flow-conditions flow-conditions
+                           :onyx.core/compiled-pre-fn (compile-pre-task-functions lifecycles (:name task))
+                           :onyx.core/compiled-pre-batch-fn (compile-pre-batch-task-functions lifecycles (:name task))
+                           :onyx.core/compiled-post-batch-fn (compile-post-batch-task-functions lifecycles (:name task))
+                           :onyx.core/compiled-post-fn (compile-post-task-functions lifecycles (:name task))
                            :onyx.core/compiled-norm-fcs (compile-fc-norms flow-conditions (:name task))
                            :onyx.core/compiled-ex-fcs (compile-fc-exs flow-conditions (:name task))
                            :onyx.core/task-map catalog-entry


Use peer-opts/defaults instead of constant

--- src/onyx/peer/task_lifecycle.clj
+++ src/onyx/peer/task_lifecycle.clj
@@ -637,7 +637,7 @@
                      (or (not (common/job-covered? replica-state job-id))
                          (not (common/any-ackers? replica-state job-id))))
             (taoensso.timbre/info (format "[%s] Not enough virtual peers have warmed up to start the task yet, backing off and trying again..." id))
-            (Thread/sleep 500)
+            (Thread/sleep (arg-or-default :onyx.peer/job-not-ready-back-off opts))
             (recur @replica)))

         (taoensso.timbre/info (format "[%s] Enough peers are active, starting the task" id))


Fix commit arg.

Fix commit arg.

--- src/onyx/peer/task_lifecycle.clj
+++ src/onyx/peer/task_lifecycle.clj
@@ -27,7 +27,7 @@
       (merge event cycle-params rets))))

 (defn munge-read-batch [event]
-  (merge event (p-ext/read-batch (assoc event :onyx.core/commit? true))))
+  (merge event {:onyx.core/commit? true} (p-ext/read-batch event)))

 (defn munge-decompress-batch [event]
   (merge event (p-ext/decompress-batch event)))


Change home route to require user authorization

--- src/todo_repl_webapp/handler.clj
+++ src/todo_repl_webapp/handler.clj
@@ -43,8 +43,9 @@

 (defroutes app-routes
   (GET "/" [] "todo repl landing page")
-  (GET "/home" [] (do (println "get /")
-                  (views/home (tasks))))
+  (GET "/home" [] (friend/authorize #{::user}
+                    (do (println "get /")
+                        (views/home (tasks)))))
   (POST "/eval" [evalInput]
     (do
       (println "/eval " evalInput)


s/concat/lazy-cat/

s/concat/lazy-cat/

--- src/babel/generate.cljc
+++ src/babel/generate.cljc
@@ -111,19 +111,19 @@
       (if (not (empty? comp-paths))
         (zipmap
          comp-paths
-         (map #(let [spec (get-in bolt %)
-                     lexemes (get-lexemes model spec)
-                     bolts-at (if (< depth max-depth)
-                                (lightning-bolts
-                                 model
-                                 (get-in bolt %)
-                                 depth max-depth))
-                     lexemes-before-phrases
-                     (lexemes-before-phrases depth max-depth)]
-                 (if lexemes-before-phrases
-                   (concat lexemes bolts-at)
-                   (concat bolts-at lexemes)))
-              comp-paths))))))
+         (mapfn #(let [spec (get-in bolt %)
+                       lexemes (get-lexemes model spec)
+                       bolts-at (if (< depth max-depth)
+                                  (lightning-bolts
+                                   model
+                                   (get-in bolt %)
+                                   depth max-depth))
+                       lexemes-before-phrases
+                       (lexemes-before-phrases depth max-depth)]
+                   (if lexemes-before-phrases
+                     (lazy-cat lexemes bolts-at)
+                     (lazy-cat bolts-at lexemes)))
+                comp-paths))))))

 (defn add-comps
   "given a bolt, return the lazy sequence of all bolts derived from this bolt after adding,
@@ -144,7 +144,7 @@
                  (mapfn
                   (fn [bolt-at]
                     (if (= false (get-in bolt-at [:phrasal]))
-                      [(assoc-in bolt path bolt-at)]
+                      [(do-defaults (assoc-in bolt path bolt-at) model)]
                       (let [comps-map (comp-paths-to-bolts-map bolt-at model (+ 1 depth) max-depth)]
                         (when (not (some empty? (vals comps-map)))
                           (let [comp-paths (keys comps-map)


cleanup

cleanup

--- src/babel/generate.cljc
+++ src/babel/generate.cljc
@@ -2,17 +2,14 @@
   (:refer-clojure :exclude [get-in deref resolve find parents])
   (:require
    [babel.index :refer [get-lex]]
-   [babel.over :as over :refer [morph-with-recovery show-bolt truncate truncate-expressions]]
-   [babel.stringutils :refer [show-as-tree]]
+   [babel.over :as over :refer [show-bolt truncate truncate-expressions]]
    #?(:clj [clojure.tools.logging :as log])
    #?(:cljs [babel.logjs :as log])
    [clojure.string :as string]
-   [dag_unify.core :refer (copy get-in fail? fail-path
-                                ref? remove-false remove-top-values-log
-                                strip-refs unify unifyc)]))
+   [dag_unify.core :refer [copy get-in fail? strip-refs unify unifyc]]))

 ;; during generation, will not decend deeper than this when creating a tree:
-;; should also be possible to override per-language.
+;; TODO: should also be possible to override per-language.
 (def ^:const max-total-depth 20)
 (def ^:const max-generated-complements 200)

@@ -173,16 +170,6 @@
        (do (log-bolt-groups bolt-groups language-model)
            (reduce concat bolt-groups))))))

-(defn add-all-comps-from-group [bolt-group language-model total-depth
-                                truncate-children max-total-depth]
-  (mapfn
-   (fn [bolt]
-     (log/trace (str "add-all-comps: adding comps to bolt: " (show-bolt bolt language-model)))
-     (add-all-comps-with-paths [bolt] language-model total-depth
-                               (find-comp-paths-in (bolt-depth bolt))
-                               truncate-children max-total-depth))
-   bolt-group))
-
 (defn log-bolt-groups [bolt-groups language-model]
   (log/trace
    (str "bolt-groups:\n"
@@ -242,9 +229,8 @@
   (log/trace (str "add-complement-to-bolt: " (show-bolt bolt language-model)
                   "@[" (string/join " " path) "]" "^" total-depth))
   (let [index (:index language-model)
-        lexicon (if (-> :generate :lexicon language-model)
-                  (-> :generate :lexicon language-model)
-                  (:lexicon language-model))
+        lexicon (or (-> :generate :lexicon language-model)
+                    (:lexicon language-model))
         from-bolt bolt ;; so we can show what (add-complement-to-bolt) did to the input bolt, for logging.
         spec (get-in bolt path)
         immediate-parent (get-in bolt (butlast path))


experimenting with different max-total-depths

--- src/babel/generate.cljc
+++ src/babel/generate.cljc
@@ -11,7 +11,7 @@

 ;; during generation, will not decend deeper than this when creating a tree:
 ;; TODO: should also be possible to override per-language.
-(def ^:const max-total-depth 2)
+(def ^:const max-total-depth 10)

 ;; use map or pmap.
 (def ^:const mapfn map)
@@ -76,7 +76,10 @@
                                        result)))
                                  (keys bolt-and-comps)))))
              model)))
-     (filter not-fail?))))
+     (filter not-fail?)
+     (map (fn [final]
+            (log/info (str "final: " ((:morph-ps model) final)))
+            final)))))

 (defn generate
   "Return one (by default) or _n_ (using :take _n_) expressions matching spec _spec_ given the model _model_."


logging improvements

logging improvements

--- src/babel/generate.cljc
+++ src/babel/generate.cljc
@@ -123,10 +123,10 @@
   "return a lazy sequence of bolts for all possible complements
   that can be added to the end of the _path_ within _bolt_."
   [bolt path model depth max-depth]
-  (let [log-message-prefix
-        (str "comp-path-to-complements:" depth "/" max-depth ":"
-             ((:morph-ps model) bolt) "@" path)
-        debug (log/trace (str log-message-prefix ": start."))
+  (let [debug (let [log-message-prefix
+                    (str "comp-path-to-complements:" depth "/" max-depth ":"
+                         ((:morph-ps model) bolt) "@" path)]
+                (log/trace (str log-message-prefix ": start.")))
         spec (get-in bolt path)
         lexemes (shufflefn (get-lexemes model spec))
         bolts-at (if (< depth max-depth)


Sometimes requiring a map makes no sense

--- src/wishlistd/models/queries.clj
+++ src/wishlistd/models/queries.clj
@@ -27,7 +27,7 @@

 ;; CRUD

-(defn get-wishlist [{:keys [code]}] ; code is unique
+(defn get-wishlist [code] ; code is unique
   (sql/with-connection db
     (sql/with-query-results results
       ["select * from wishlist where code=?" code]
@@ -80,6 +80,6 @@
   (let [wishlist (insert-wishlist {:title "Default"})]
     (assoc wishlist :wishes [])))

-(defn get-wishlist-with-wishes [{:keys [code]}]
-  (when-let [wishlist (get-wishlist {:code code})]
+(defn get-wishlist-with-wishes [code]
+  (when-let [wishlist (get-wishlist code)]
     (assoc wishlist :wishes (get-wishes-for-wishlist wishlist))))


attempt to fix formatting

attempt to fix formatting

--- src/caesium/binding.clj
+++ src/caesium/binding.clj
@@ -131,7 +131,7 @@
     [^long ^{size_t {}} crypto_shorthash_bytes]
     [^long ^{size_t {}} crypto_shorthash_keybytes]
     [^String crypto_shorthash_primitive []]
-
+
     [^int crypto_shorthash
      [^bytes ^{Pinned {}} out
       ^bytes ^{Pinned {}} in


Using rem based addr layout.

Using rem based addr layout.

--- src/cbfg/world-net.cljs
+++ src/cbfg/world-net.cljs
@@ -125,23 +125,25 @@
                                    [(:accept-addr stream) (:accept-port stream)]
                                    [(:server-port stream)
                                     (:client-addr stream) (:client-port stream)]] (:msgs stream)))))
-    (doall (map-indexed
-            (fn [addr-idx [addr addr-v]]
-              (swap! coords #(assoc % addr addr-idx))
-              (doseq [[[accept-addr accept-port] accept-addr-port-v] (sort-by first (:outs addr-v))]
-                (doall (map-indexed
-                        (fn [idx [[from-port to-addr to-port] msgs]]
-                          (swap! coords #(assoc % [addr from-port] idx)))
-                        (sort-by first accept-addr-port-v)))))
-            (sort-by first @addrs)))
+    (let [naddrs (count @addrs)]
+      (doall (map-indexed
+              (fn [addr-idx [addr addr-v]]
+                (swap! coords #(assoc % addr [addr-idx (rem (* (dec naddrs) addr-idx) naddrs)]))
+                (doseq [[[accept-addr accept-port] accept-addr-port-v]
+                        (sort-by first (:outs addr-v))]
+                  (doall (map-indexed
+                          (fn [idx [[from-port to-addr to-port] msgs]]
+                            (swap! coords #(assoc % [addr from-port] idx)))
+                          (sort-by first accept-addr-port-v)))))
+              (sort-by first @addrs))))
     (let [coords @coords
-          top-height 30
+          top-height 60
           line-height 20
           addr-width 50
           addr-gap 100
-          calc-xy (fn [addr] (let [c (get coords addr)]
-                               [(* addr-width c (/ (+ addr-width addr-gap) addr-width))
-                                (* top-height c)]))
+          calc-xy (fn [addr] (let [[c0 c1] (get coords addr)]
+                               [(* addr-width c0 (/ (+ addr-width addr-gap) addr-width))
+                                (* top-height c1)]))
           h ["<div style='height:" (apply max (map #(count (:outs %)) (vals @addrs))) "em;'>"
              (mapv (fn [[addr addr-v]]
                      (let [[addr-x addr-y] (calc-xy addr)]


statics work in defui

statics work in defui

--- src/cellophane/next.clj
+++ src/cellophane/next.clj
@@ -56,6 +56,7 @@
       (reify
         cellophane.protocols/ReactLifecycle
         ~@(rest dt)
+        ~@(:protocols statics)
         cellophane.protocols/ReactComponent
         (~'-render [this#]
          (.render this#))