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 <mal...@juxt.pro<javascript:>
> > 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.**service.http/port 8000
>>>
>>>
>>>            :io.pedestal.**service.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/**dependencies [:server]
>>>
>>>                 :jig/scheme :http
>>>
>>>
>>>                 :jig/hostname "localhost"
>>>                 :jig.web/**server :server
>>>
>>>                 }
>>>
>>>
>>>
>>> Thanks 
>>>  
>>> Tim Washington 
>>> Interruptsoftware.ca / Bkeeping.com 
>>>  
>>>
>>>
>>> On Thu, Oct 17, 2013 at 7:30 PM, zcaudate <z...@caudate.me> 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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to