Skip to content

Commit 81a0508

Browse files
committed
update for v0.4.1
1 parent d7ab09f commit 81a0508

22 files changed

+331
-45
lines changed

.settings/ccw.repl.cmdhistory.prefs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
cmdhistory=["(render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\" )" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\" )" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\" )" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/Installation.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/More.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/UserfullLinks.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/More.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" "(render-md-file \\"/home/who/git/workflow-server/README.md\\")" " (render-md-file \\"/home/who/git/workflow-server/README.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Installation.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/More.md\\")" "(render-md-file \\"Configuration.md\\")" " (render-md-file \\"HISTORY.md\\")" "(render-md-file \\"CoreFeatures.md\\")" "(render-md-file \\"Installation.md\\")" "(render-md-file \\"More.md\\")" "(render-md-file \\"QuickStart.md\\")" "(render-md-file \\"Installation.md\\")" " (render-md-file \\"Installation.md\\")" "(doseq [f (file-seq \\".\\")]\\n (println f))" " (doseq [f (file-seq (clojure.java.io/file \\".\\"))]\\n (println f))" "( render-all-updated \\".\\")" " ( render-all-updated \\".\\")" "( render-all-updated \\".\\")" " ( render-all-updated \\".\\")" "(render-md-file \\".\\")" "(render-all-updated \\".\\")" " (render-md-file \\".\\")" " (render-all-updated \\".\\")" "(render-all-updated \\".\\")" " (render-all-updated \\".\\")" "(render-all-updated \\".\\")" " (render-all-updated \\".\\")" "(render-all-updated \\".\\")" "(render-all-updated \\"/home/who/git/websocket-protocol.wiki\\")" "(def m (load-all-content))" " (def m (load-all-content))" "(count m)" "(m \\"footer\\")" "(def m (load-all-content))" "(m \\"content-template\\")" "(def m (load-all-content))" "(m \\"content-template\\")" "(man for)" "(doc for)" "(for [x (range 3)] (print x) x)" "(for [x (range 3)] (do (print x) x))" "(gen-all-updated-html)"]
1+
cmdhistory=["(render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\" )" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\" )" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\" )" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/Installation.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/More.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/UserfullLinks.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/More.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" "(render-md-file \\"/home/who/git/workflow-server/README.md\\")" " (render-md-file \\"/home/who/git/workflow-server/README.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/HISTORY.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\")" " (render-md-file \\"/home/who/git/nginx-clojure.github.io/Configuration.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/CoreFeatures.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/Installation.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/QuickStart.md\\")" "(render-md-file \\"/home/who/git/nginx-clojure.github.io/More.md\\")" "(render-md-file \\"Configuration.md\\")" " (render-md-file \\"HISTORY.md\\")" "(render-md-file \\"CoreFeatures.md\\")" "(render-md-file \\"Installation.md\\")" "(render-md-file \\"More.md\\")" "(render-md-file \\"QuickStart.md\\")" "(render-md-file \\"Installation.md\\")" " (render-md-file \\"Installation.md\\")" "(doseq [f (file-seq \\".\\")]\\n (println f))" " (doseq [f (file-seq (clojure.java.io/file \\".\\"))]\\n (println f))" "( render-all-updated \\".\\")" " ( render-all-updated \\".\\")" "( render-all-updated \\".\\")" " ( render-all-updated \\".\\")" "(render-md-file \\".\\")" "(render-all-updated \\".\\")" " (render-md-file \\".\\")" " (render-all-updated \\".\\")" "(render-all-updated \\".\\")" " (render-all-updated \\".\\")" "(render-all-updated \\".\\")" " (render-all-updated \\".\\")" "(render-all-updated \\".\\")" "(render-all-updated \\"/home/who/git/websocket-protocol.wiki\\")" "(def m (load-all-content))" " (def m (load-all-content))" "(count m)" "(m \\"footer\\")" "(def m (load-all-content))" "(m \\"content-template\\")" "(def m (load-all-content))" "(m \\"content-template\\")" "(man for)" "(doc for)" "(for [x (range 3)] (print x) x)" "(for [x (range 3)] (do (print x) x))" "(gen-all-updated-html)" "(use 'tool)" "(gen-all-updated-html)" "(render-all-updated)" "(gen-all-updated-html)" "(render-all-updated)" "(gen-all-updated-html)" " (gen-all-updated-html)" "(gen-all-updated-html)" " (gen-all-updated-html)" "(gen-all-updated-html)"]
22
eclipse.preferences.version=1

CoreFeatures.md

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
Core Features
22
=================
33

4-
The latest release is v0.4.0, more detail changes about it can be found from [Release History](downloads.html).
4+
The latest release is v0.4.1, more detail changes about it can be found from [Release History](downloads.html).
55

66
1. Compatible with [Ring](https://github.com/ring-clojure/ring/blob/master/SPEC) and obviously supports those Ring based frameworks, such as Compojure etc.
77
1. Http Services by using Clojure / Java / Groovy to write simple handlers for http services.
88
1. Nginx Access Handler by Clojure / Java / Groovy
99
1. Nginx Header Filter by Clojure / Java / Groovy
10+
1. **_NEW_**: APIs for Embedding Nginx-Clojure into a Standard Clojure/Java/Groovy App
1011
1. **_NEW_**: Server Side Websocket
1112
1. **_NEW_**: A build-in Jersey container to support java standard RESTful web services (JAX-RS 2.0)
1213
1. **_NEW_**: Tomcat 8 embedding support (so servlet 3.1/jsp/sendfile/JSR-356 websocket work within nginx!)
@@ -39,19 +40,19 @@ Nginx-Clojure has already been published to https://clojars.org/ whose maven rep
3940
</repository>
4041
```
4142

42-
After adding clojars repository, you can reference nginx-clojure 0.4.0 , e.g.
43+
After adding clojars repository, you can reference nginx-clojure 0.4.1 , e.g.
4344

4445
Leiningen (clojure, no need to add clojars repository which is a default repository for Leiningen)
4546
-----------------
4647

4748
```clojure
48-
[nginx-clojure "0.4.0"]
49+
[nginx-clojure "0.4.1"]
4950
```
5051
Gradle (groovy/java)
5152
-----------------
5253

5354
```
54-
compile "nginx-clojure:nginx-clojure:0.4.0"
55+
compile "nginx-clojure:nginx-clojure:0.4.1"
5556
```
5657
Maven
5758
-----------------
@@ -60,13 +61,13 @@ Maven
6061
<dependency>
6162
<groupId>nginx-clojure</groupId>
6263
<artifactId>nginx-clojure</artifactId>
63-
<version>0.4.0</version>
64+
<version>0.4.1</version>
6465
</dependency>
6566
```
6667

6768
License
6869
=================
69-
Copyright © 2013-2014 Zhang, Yuexiang (xfeep) and released under the BSD 3-Clause license.
70+
Copyright © 2013-2015 Zhang, Yuexiang (xfeep) and released under the BSD 3-Clause license.
7071

7172
This program uses:
7273
* Re-rooted ASM bytecode engineering library which is distributed under the BSD 3-Clause license

CoreFeatures.md.html

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<h1>
22
<a id="user-content-core-features" class="anchor" href="#core-features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Core Features</h1>
33

4-
<p>The latest release is v0.4.0, more detail changes about it can be found from <a href="downloads.html">Release History</a>.</p>
4+
<p>The latest release is v0.4.1, more detail changes about it can be found from <a href="downloads.html">Release History</a>.</p>
55

66
<ol>
77
<li>Compatible with <a href="https://github.com/ring-clojure/ring/blob/master/SPEC">Ring</a> and obviously supports those Ring based frameworks, such as Compojure etc.</li>
88
<li>Http Services by using Clojure / Java / Groovy to write simple handlers for http services.</li>
99
<li>Nginx Access Handler by Clojure / Java / Groovy</li>
1010
<li>Nginx Header Filter by Clojure / Java / Groovy</li>
1111
<li>
12+
<strong><em>NEW</em></strong>: APIs for Embedding Nginx-Clojure into a Standard Clojure/Java/Groovy App</li>
13+
<li>
1214
<strong><em>NEW</em></strong>: Server Side Websocket</li>
1315
<li>
1416
<strong><em>NEW</em></strong>: A build-in Jersey container to support java standard RESTful web services (JAX-RS 2.0)</li>
@@ -42,17 +44,17 @@ <h1>
4244
&lt;<span class="pl-ent">url</span>&gt;http://clojars.org/repo&lt;/<span class="pl-ent">url</span>&gt;
4345
&lt;/<span class="pl-ent">repository</span>&gt;</pre></div>
4446

45-
<p>After adding clojars repository, you can reference nginx-clojure 0.4.0 , e.g.</p>
47+
<p>After adding clojars repository, you can reference nginx-clojure 0.4.1 , e.g.</p>
4648

4749
<h2>
4850
<a id="user-content--leiningen-clojure-no-need-to-add-clojars-repository-which-is-a-default-repository-for-leiningen-" class="anchor" href="#-leiningen-clojure-no-need-to-add-clojars-repository-which-is-a-default-repository-for-leiningen-" aria-hidden="true"><span class="octicon octicon-link"></span></a> Leiningen (clojure, no need to add clojars repository which is a default repository for Leiningen) </h2>
4951

50-
<div class="highlight highlight-clojure"><pre>[nginx-clojure <span class="pl-s"><span class="pl-pds">"</span>0.4.0<span class="pl-pds">"</span></span>]</pre></div>
52+
<div class="highlight highlight-clojure"><pre>[nginx-clojure <span class="pl-s"><span class="pl-pds">"</span>0.4.1<span class="pl-pds">"</span></span>]</pre></div>
5153

5254
<h2>
5355
<a id="user-content-gradle-groovyjava" class="anchor" href="#gradle-groovyjava" aria-hidden="true"><span class="octicon octicon-link"></span></a>Gradle (groovy/java)</h2>
5456

55-
<pre><code>compile "nginx-clojure:nginx-clojure:0.4.0"
57+
<pre><code>compile "nginx-clojure:nginx-clojure:0.4.1"
5658
</code></pre>
5759

5860
<h2>
@@ -61,13 +63,13 @@ <h2>
6163
<div class="highlight highlight-xml"><pre>&lt;<span class="pl-ent">dependency</span>&gt;
6264
&lt;<span class="pl-ent">groupId</span>&gt;nginx-clojure&lt;/<span class="pl-ent">groupId</span>&gt;
6365
&lt;<span class="pl-ent">artifactId</span>&gt;nginx-clojure&lt;/<span class="pl-ent">artifactId</span>&gt;
64-
&lt;<span class="pl-ent">version</span>&gt;0.4.0&lt;/<span class="pl-ent">version</span>&gt;
66+
&lt;<span class="pl-ent">version</span>&gt;0.4.1&lt;/<span class="pl-ent">version</span>&gt;
6567
&lt;/<span class="pl-ent">dependency</span>&gt;</pre></div>
6668

6769
<h1>
6870
<a id="user-content-license" class="anchor" href="#license" aria-hidden="true"><span class="octicon octicon-link"></span></a>License</h1>
6971

70-
<p>Copyright © 2013-2014 Zhang, Yuexiang (xfeep) and released under the BSD 3-Clause license.</p>
72+
<p>Copyright © 2013-2015 Zhang, Yuexiang (xfeep) and released under the BSD 3-Clause license.</p>
7173

7274
<p>This program uses:</p>
7375

Embed.md

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# nginx-clojure-embed
2+
3+
Embeding Nginx-Clojure into a standard java/clojure app without additional Nginx process.
4+
It can make test/debug with nginx-clojure clojure/java handler quite easy.
5+
6+
Jar Repository
7+
================
8+
9+
For Clojure
10+
11+
```clojure
12+
[nginx-clojure/nginx-clojure-embed "0.4.1"]
13+
```
14+
15+
For Java (Maven)
16+
17+
```xml
18+
<repository>
19+
<id>clojars.org</id>
20+
<url>http://clojars.org/repo</url>
21+
</repository>
22+
```
23+
24+
```xml
25+
<dependency>
26+
<groupId>nginx-clojure</groupId>
27+
<artifactId>nginx-clojure-embed</artifactId>
28+
<version>0.4.1</version>
29+
</dependency>
30+
```
31+
32+
Start/Stop Embedded Server
33+
================
34+
35+
For Clojure
36+
37+
```clojure
38+
;;(1) Start it with ring handler and an options map
39+
;;my-app can be a simple ring hanler or a compojure router.
40+
(run-server my-app {:port 8080})
41+
42+
43+
;;(2) Start it with a nginx.conf file
44+
(run-server "/my-dir/nginx.conf")
45+
46+
;;(3) Start it with a given work dir
47+
(binding [*nginx-work-dir* my-work-dir]
48+
(run-server ...))
49+
50+
;;(4) Stop the server
51+
(stop-server)
52+
```
53+
54+
For Java
55+
56+
```java
57+
//Start it with ring handler and an options map
58+
NginxEmbedServer.getServer().start("my.HelloHandler", ArrayMap.create("port", "8081"));
59+
60+
61+
//Start it with with a nginx.conf file
62+
NginxEmbedServer.getServer().start("/my-dir/nginx.conf");
63+
64+
//Start it with a given work dir
65+
NginxEmbedServer.getServer().setWorkDir(my-work-dir);
66+
NginxEmbedServer.getServer().start(...);
67+
68+
69+
//Stop the server
70+
NginxEmbedServer.getServer().stop();
71+
```
72+
73+
Default Options
74+
================
75+
76+
```clojure
77+
"error-log", "logs/error.log",
78+
"max-connections", "1024",
79+
"access-log", "off",
80+
"keepalive-timeout", "65",
81+
"max-threads", "8",
82+
"host", "0.0.0.0",
83+
"port", "8080",
84+
```
85+
86+
User defined zones
87+
88+
```clojure
89+
;;;at nginx.conf top level
90+
"global-user-defined", "",
91+
92+
;;;at nginx.conf http block
93+
"http-user-defined", "",
94+
95+
;;at nginx.conf types mapping block
96+
"types-user-defined", "",
97+
98+
;;at nginx.conf server block
99+
"server-user-defined", "",
100+
101+
;;at nginx.conf location block
102+
"location-user-defined", ""
103+
```

0 commit comments

Comments
 (0)