This is great. I tried digging into the code and saw the repo changing. So I'm glad I didn't get too far down a path. I'll definitely have a look in the next few days and have feedback for you.
Tim Washington Interruptsoftware.ca / Bkeeping.com On Thu, Oct 24, 2013 at 8:54 PM, Malcolm Sparks <[email protected]> wrote: > Hi Tim, > > I've just pushed Jig 1.2.0 to https://github.com/juxt/jig. > > This release adds support for Ring and Compojure, which many people have > asked for, including proper examples of using both Ring/Compojure and > Pedestal services. There are numerous other components included (Git pull, > JMX, nginx) to support an automated continuous deployment process. > > As you pointed out, there were missing details in my own work branches, so > the packaged examples should hopefully make things clearer. > > Thanks for the feedback on using Jig, it is much appreciated, and please > let me know if you still need some help with the specifics. > > Regards, > > Malcolm > > > > > > > On Monday, 21 October 2013 21:14:32 UTC+1, frye wrote: > >> Hey Malcolm, >> >> >> So since you guys just have Pedestal set up at the moment, I've started >> there. >> >> >> *My Repos * >> >> You can see my project jig >> here<https://github.com/stefonweblog/stefon-jig/blob/master/config/config.clj>. >> It connects to >> common<https://github.com/stefonweblog/stefon-webui-common/blob/master/src/stefon_webui_common/core.clj> >> , >> compojure<https://github.com/stefonweblog/stefon-compojure/blob/master/src/stefon_compojure/core.clj> >> (not >> yet configured), and >> pedestal-service<https://github.com/stefonweblog/stefon-pedestal-service/blob/master/src/stefon_pedestal_service/service.clj> >> **component. I'm trying to get the Pedestal portions working. Now, I >> haven't yet been able to stitch together routes using the Pedestal " >> :juxtweb/service" component you have. The ":server" component runs fine, >> when executing (go). But the handlers don't seem to be attached. Do I >> need a separate ":jig/projects" entry in my config? >> >> { >> >> :jig/components >> >> >> { >> >> ;; ===> >> >> :server {:jig/component jig.web.server/Component >> >> >> >> >> :io.pedestal.**service.http/port 8000 >> >> :io.pedestal.**service.http/type :jetty} >> >> >> >> >> >> >> >> >> >> :juxtweb/web {:jig/component jig.web.app/Component >> >> >> >> :jig/**dependencies [:server] >> >> :jig/scheme :http >> >> :jig/hostname "localhost" >> >> :jig.web/**server :server} >> >> >> >> >> >> >> >> >> >> >> ;; ===> >> >> :stefon-webui-common {:jig/component stefon-webui-common.core/**Component >> >> >> >> >> :jig/**project >> "../stefon-webui-common/**project.clj"} >> >> >> >> >> >> :stefon-compojure {:jig/component stefon-compojure.core/**Component >> >> >> >> :jig/**project "../stefon-compojure/project.**clj" >> >> :jig/**dependencies [:server >> >> >> >> ** :stefon-webui-common**]} >> >> >> :stefon-pedestal {:jig/component >> stefon-pedestal-service.**service/Component >> >> >> >> >> :jig/**project "../stefon-pedestal-service/**project.clj" >> >> :jig/**dependencies [:juxtweb/web >> >> >> >> ** :stefon-webui-common] >> >> :jig.web/**app-name :juxtweb/web} >> >> >> >> }} >> >> >> >> >> *Juxt's Cloned Repos * >> >> So I tried cloning your example repos to see working example code. But >> there's a few things that went awry. >> >> >> *A)* I had to rename the cloned repo for the referencing in >> "jig/config/config.clj" to work (:jig/project >> "../accounting/project.clj"). >> >> ~/Projects/trial/*JIG*$ ls -la >> accounting/ *;; had to `mv juxt-accounting accounting` * >> jig/ >> juxtweb/ >> >> >> *B)* Also, you've hard-coded an accounts db file to your hard drive >> >> *java.io.FileNotFoundException: /home/malcolm/Dropbox.private/ >> JUXT/accounts.edn* >> >> >> >> >> Tim Washington >> Interruptsoftware.ca / Bkeeping.com >> >> >> On Mon, Oct 21, 2013 at 3:57 AM, Malcolm Sparks <[email protected]> wrote: >> >>> Hi Tim, >>> >>> Good to hear you're finding Jig useful. >>> >>> There isn't any explicit support for Ring in Jig yet, it's just Pedestal >>> services right now. The separation of jig.web.server and jig.web.app into 2 >>> components is to allow multiple 'virtual hosts' to share the same Jetty >>> server, if necessary. >>> >>> It's a third component, usually your own, that actually adds routes to a >>> virtual host. See the ReadmeComponent in examples/docsite/src/examples/* >>> *docsite/core.clj >>> here<https://github.com/juxt/jig/blob/master/examples/docsite/src/examples/docsite/core.clj#L75>. >>> It adds routes in its init phase. >>> >>> The idea is that other components can be contribute routes in the same >>> way, so you have the option of breaking up a website into modules. >>> >>> The nice thing about Pedestal services is that hyperlinks can be >>> generated using the url-for functionality it provides. If you use this >>> feature consistently, you can treat the jig.web.app as an anchor on which >>> to hook multiple applications and configure the URL tree accordingly. I'm >>> intrigued by this url-for feature and wanted to experiment with it with Jig. >>> >>> Since Compojure doesn't have this automatic ability to create links from >>> handler vars, it's likely you'll want to set it up manually. Here's a >>> suggestion for how to do this: >>> >>> 1. Create a Ring server component. >>> >>> 2. In the init phase, add an empty vector called :routes. Other >>> components can depend on this one, and in their init phase, they concat >>> their routes to this vector. >>> >>> 3. Then, in its start phase, the Ring server component composes the >>> routes together (using Compojure's routes function) and creates and starts >>> the server, placing the server in the system map so that it can be found >>> and stopped in its stop phase. >>> >>> Remember that you don't need to use any reloading tricks described by >>> Ring<https://github.com/ring-clojure/ring/wiki/Interactive-Development#iii-manually>, >>> such as passing a var to run-jetty rather than the handler itself. Nor do >>> you need :reload and any file status detection. >>> >>> What I really like about Stuart's workflow is that it allows you to do >>> away with these 'dev versus prod' modes, you just code everything in 'prod' >>> mode (i.e. there is only one mode) and let the reset handle the dev reload. >>> This makes code simpler and ensures you are developing and testing what the >>> users get, not a development 'version' that approximates to it. >>> >>> Regards, >>> >>> Malcolm >>> >>> >>> >>> >>> On Monday, October 21, 2013 1:41:43 AM UTC+1, frye wrote: >>> >>>> Also, is there a Google Group for Jig? I'm playing around with it, can >>>> see the potential, and already have some questions. Anyways, in the >>>> meantime, I'll keep digging. I'm finding jig really useful so far. >>>> >>>> >>>> *A)* As taken from the example, I'm using the Jetty :server >>>> component<https://github.com/juxt/jig/blob/master/config/config.clj#L6>. >>>> I'm trying to figure out how to pass in my Compojure route >>>> handler<https://github.com/weavejester/compojure-example/blob/master/src/compojure/example/routes.clj> >>>> (also >>>> see<http://weavejester.github.io/compojure/compojure.handler.html#var-site>) >>>> to >>>> jetty. This is how its done >>>> manually<https://github.com/ring-clojure/ring/wiki/Interactive-Development#iii-manually>. >>>> But obviously, I need to fit that into the jig framework. >>>> >>>> >>>> >>>> >>>> >>>> :server {:jig/component jig.web.server/Component ;; how do I pass >>>> in my Compojure route handler ? >>>> >>>> :io.pedestal.**servic**e.http/port 8000 >>>> >>>> >>>> :io.pedestal.**servic**e.http/type :jetty >>>> } >>>> >>>> >>>> >>>> *B)* Same thing with Pedestal. I want to be able to pass in my app's >>>> routing table. But I don't quite grok how to do that, from the examples ( >>>> here <https://github.com/juxt/jig/blob/master/config/config.clj#L28>and >>>> here <https://github.com/juxt/jig/blob/master/src/jig/web/app.clj>). >>>> >>>> >>>> >>>> >>>> >>>> :juxtweb/web {:jig/component jig.web.app/Component ;; how do I pass >>>> in my routing table of handlers ? >>>> >>>> :jig/**dependenc**ies [:server] >>>> >>>> :jig/scheme :http >>>> >>>> >>>> :jig/hostname "localhost" >>>> :jig.web/**serve**r :server >>>> >>>> } >>>> >>>> >>>> >>>> Thanks >>>> >>>> Tim Washington >>>> Interruptsoftware.ca / Bkeeping.com >>>> >>>> >>>> >>>> On Thu, Oct 17, 2013 at 7:30 PM, zcaudate <[email protected]> wrote: >>>> >>>>> Would it be possible to put up a video of a typical workflow example >>>>> with pedestal. It's quite difficult for me to piece everything together >>>>> just by reading the documentation. >>>>> >>>>> Chris >>>>> >>>>> -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
