Skip to content

Commit

Permalink
Merge pull request #4 from appserver-io/gh-pages
Browse files Browse the repository at this point in the history
Merge with appserver-io/gh-pages
  • Loading branch information
wagnert committed Feb 5, 2015
2 parents 7f7fc17 + 276edc2 commit 4519834
Show file tree
Hide file tree
Showing 113 changed files with 1,789 additions and 592 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Expand Up @@ -6,3 +6,9 @@
/.project
/.settings
.DS_Store
/webapps
/composer.lock
jmeter.log
/bin
/etc
/vendor
14 changes: 12 additions & 2 deletions _config.yml
Expand Up @@ -9,26 +9,36 @@ description: > # The objective of the project is to develop a multithreaded
applications in PHP environments.
timezone: Europe/Berlin
future: false
port: 4000
host: 0.0.0.0
baseurl: ""
url: "http://appserver.io"
future: false

collections:
redirects:
output: true
docs:
output: true
faq:
output: true
tuts:
output: true
roadmap:
output: true
features:
path: products/

twitter_username: php_appserver

github_username: appserver-io
github_repository: https://github.com/appserver.io/appserver
github_repository: https://github.com/appserver-io/appserver
github_issue: https://github.com/appserver-io/appserver/issues/

google_analytics_id: UA-42386171-1

appserver_version: 1.0.0rc1

markdown: redcarpet
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "with_toc_data"]
2 changes: 1 addition & 1 deletion _docs/annotations.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Annotations
position: 60
group: Docs
permalink: /documentation/annotations.html
permalink: /get-started/documentation/annotations.html
---

As one of our main targets is to make configuration as simple as possible we decided to use
Expand Down
467 changes: 418 additions & 49 deletions _docs/aop.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions _docs/basic-usage.md
Expand Up @@ -3,10 +3,10 @@ layout: docs
title: Basic Usage
position: 20
group: Docs
subDocs:
subNav:
- title: Start and Stop Scripts
href: start-and-stop-scripts
permalink: /documentation/basic-usage.html
permalink: /get-started/documentation/basic-usage.html
---

The appserver will automatically start after your installation wizard (or package manager) finishes
Expand Down
4 changes: 2 additions & 2 deletions _docs/configuration.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Configuration
position: 130
group: Docs
subDocs:
subNav:
- title: Basic Architecture
href: basic-architecture
- title: Container Configuration
Expand All @@ -16,7 +16,7 @@ subDocs:
href: configuration-defaults
- title: Optional Configuration
href: optional-configuration
permalink: /documentation/configuration.html
permalink: /get-started/documentation/configuration.html
---

We believe that the appserver should be highly configurable, so anyone interested can fiddle
Expand Down
4 changes: 2 additions & 2 deletions _docs/dependency-injection.md
Expand Up @@ -3,12 +3,12 @@ layout: docs
title: Dependency Injection
position: 70
group: Docs
subDocs:
subNav:
- title: What can be injected
href: what-can-be-injected
- title: How to inject an instance
href: how-to-inject-an-instance
permalink: /documentation/dependency-injection.html
permalink: /get-started/documentation/dependency-injection.html
---

Dependency Injection, furthermore DI, enables developers to write cleaner, reusable and maintainable
Expand Down
8 changes: 4 additions & 4 deletions _docs/deployment.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Deployment
position: 150
group: Docs
subDocs:
subNav:
- title: Deployment Modes
href: deployment-modes
- title: Marker Files
Expand All @@ -12,7 +12,7 @@ subDocs:
href: basic-workflows
- title: Windows Notes
href: windows-notes
permalink: /documentation/deployment.html
permalink: /get-started/documentation/deployment.html
---

The deploy directory in the appserver.io Application Server distribution is the location end users can place their deployment content (e. g. phar files) to have it deployed into the server runtime.
Expand All @@ -32,7 +32,7 @@ The marker files always have the same name as the deployment content to which th
The relevant marker file types are:

| Marker | Description |
|:-------------|:----------------------------------------------------------------|
| -------------| ----------------------------------------------------------------|
| .dodeploy | Placed by the user to indicate that the given content should be deployed or redeployed into the runtime. |
| .deploying | Placed by the deployment scanner service to indicate that it has noticed a .dodeploy file and is in the process of deploying the content. This marker file will be deleted when the deployment process completes. |
| .deployed | Placed by the deployment scanner service to indicate that the given content has been deployed into the runtime. If an end user deletes this file and no other marker is available, the content will be undeployed. |
Expand Down Expand Up @@ -71,7 +71,7 @@ $ mv $AS/deploy/example.phar.deployed $AS/deploy/example.phar.dodeploy
The above examples use UNIX shell commands. Windows equivalents are:

| UNIX | Windows |
|:---------------|:------------------------|
| ---------------| ------------------------|
| cp src dest | xcopy /y src dest |
| cp -r src dest | xcopy /e /s /y src dest |
| rm afile | del afile |
Expand Down
11 changes: 5 additions & 6 deletions _docs/design-by-contract.md
Expand Up @@ -3,14 +3,14 @@ layout: docs
title: Design by Contract
position: 120
group: Docs
subDocs:
subNav:
- title: What can be done
href: what-can-be-done
- title: How does it work
href: how-does-it-work
- title: Usage
href: usage
permalink: /documentation/design-by-contract.html
permalink: /get-started/documentation/design-by-contract.html
---

Beside AOP, [Design-by-Contract](http://en.wikipedia.org/wiki/Design_by_contract) is another
Expand All @@ -31,13 +31,12 @@ As stated above this library aims to bring you the power of Design by Contract,
your applications more robust and easier to debug. This contains basic features as:

- Use your basic `DocBlock` annotations `@param` and `@return` as type hints (scalar and class/interface
based), including special features like `typed arrays` using e. g. `array<int>` (collections for
complex types only yet)
based), including special features like `typed arrays` using e. g. `\stdClass[]`
- Specify complex method contracts in PHP syntax using `@requires` as precondition and `@ensures` as
postcondition
- Specify a state of validity for your classes (e.g. `$this->attribute !== null`) which will be true
- Specify a state of validity for your classes (e.g. `$this->attribute !== null`) which should be true
all times using `@invariant`
- The above (not including type safety) will be inherited by every child structure, strengthening your
- The above can be (not enabled by default) inherited by every child structure, strengthening your
object hierarchies
- The library will warn you (exception or log message) on violation of these contracts

Expand Down
31 changes: 15 additions & 16 deletions _docs/installation.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Installation
position: 10
group: Docs
subDocs:
subNav:
- title: Mac OS X
href: mac-os-x
- title: Windows
Expand All @@ -16,22 +16,21 @@ subDocs:
href: centos
- title: Raspbian
href: raspbian
permalink: /documentation/installation.html
permalink: /get-started/documentation/installation.html
---

Besides supporting several operating systems and their specific ways of installing software, we
also support several ways of getting this software. So to get your appserver.io package you might
do any of the following:

* Download one of our [**releases**](<https://github.com/appserver-io/appserver/releases>)
right from this repository which provide tested install packages

* Grab any of our [**nightlies**](<http://builds.appserver.io/>) from our project page to get
bleeding edge install packages which still might have some bugs

* Build your own package using [ANT](<http://ant.apache.org/>)! To do so clone the [runtime](<https://github.com/appserver-io-php/runtime>)
first. Then update at least the `os.family` and `os.distribution` build properties according to
your environment and build the appserver with the ANT `build` and `create-package` target
* Download one of our [**releases**](<https://github.com/appserver-io/appserver/releases>) right from this repository
which provide tested install packages
* Grab any of our [**nightlies**](<http://builds.appserver.io/>) from our project page to get bleeding edge install
packages which still might have some bugs
* Build your own package using [ANT](<http://ant.apache.org/>)! To do so clone the
[runtime](<https://github.com/appserver-io-php/runtime>) first. Then update at least the `os.family` and
`os.distribution` build properties according to your environment and build the appserver with the ANT `build`
and `create-package` target

The package will install with these basic default characteristics:

Expand All @@ -45,13 +44,13 @@ For OS specific steps and characteristics see below for tested environments.

> Runs and tested on Mac OS X 10.8.x and higher!
For Mac OS X > 10.8.x we provide a `.pkg` file for [download](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-dist-1.0.0-beta4.22.mac.x86_64.pkg) that contains the runtime and the distribution. Double-clicking on the `.pkg` starts and guides you through the installation process.
For Mac OS X > 10.8.x we provide a `.pkg` file for [download](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-dist-1.0.0-rc1.30.mac.x86_64.pkg) that contains the runtime and the distribution. Double-clicking on the `.pkg` starts and guides you through the installation process.

## Windows

> Runs and tested on Windows 7 (32-bit) and higher!
As we deliver the Windows appserver as a .jar file you can [download](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-dist-1.0.0-beta4.39.win.x86.jar), a installed Java Runtime Environment (or JDK
As we deliver the Windows appserver as a .jar file you can [download](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-dist-1.0.0-rc1.43.win.x86.jar), a installed Java Runtime Environment (or JDK
that is) is a vital requirement for using it. If the JRE/JDK is not installed you have to do so
first. You might get it from [Oracle's download page](<http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html>).
If this requirement is met you can start the installation by simply double-clicking the .jar archive.
Expand All @@ -69,19 +68,19 @@ root@debian:~# aptitude update
root@debian:~# aptitude install appserver-dist
```

Optionally you can download the `.deb` files for the [runtime](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-runtime-1.0.0-beta2.14.linux.debian.x86_64.deb) and the [distribution](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-dist-1.0.0-beta4.20.linux.debian.x86_64.deb) and install them by double-clicking on them. This will invoke the system default package manager and guides you through the installation process. Please install the runtime first, as this is a dependency for the distribution.
Optionally you can download the `.deb` files for the [runtime](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-runtime-1.0.0-beta3.16.linux.debian.x86_64.deb) and the [distribution](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-dist-1.0.0-rc1.25.linux.debian.x86_64.deb) and install them by double-clicking on them. This will invoke the system default package manager and guides you through the installation process. Please install the runtime first, as this is a dependency for the distribution.

## Fedora

> Runs and tested on versions Fedora 20 (64-bit) and higher!
We also provide `.rpm` files for Fedora, one for [runtime](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-runtime-1.0.0-beta2.22.linux.fedora.x86_64.rpm) and [distribution](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-dist-1.0.0-beta4.42.linux.fedora.x86_64.rpm), that you can download and start the installation process by double-clicking on it. This will start the systems default package manager and guides you through the installation process.
We also provide `.rpm` files for Fedora, one for [runtime](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-runtime-1.0.0-beta3.24.linux.fedora.x86_64.rpm) and [distribution](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-dist-1.0.0-rc1.47.linux.fedora.x86_64.rpm), that you can download and start the installation process by double-clicking on it. This will start the systems default package manager and guides you through the installation process.

## CentOS

> Runs and tested on CentOS 6.5 (64-bit) and higher!
Installation and basic usage is the same as on Fedora but we provide different packages for [runtime](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-runtime-1.0.0-beta2.24.linux.centos.x86_64.rpm) and [distribution](https://github.com/appserver-io/appserver/releases/download/1.0.0-beta4/appserver-dist-1.0.0-beta4.28.linux.centos.x86_64.rpm). CentOS requires additional repositories
Installation and basic usage is the same as on Fedora but we provide different packages for [runtime](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-runtime-1.0.0-beta3.26.linux.centos.x86_64.rpm) and [distribution](https://github.com/appserver-io/appserver/releases/download/1.0.0-rc1/appserver-dist-1.0.0-rc1.32.linux.centos.x86_64.rpm). CentOS requires additional repositories
like [remi](<http://rpms.famillecollet.com/>) or [EPEL](<http://fedoraproject.org/wiki/EPEL>) to
satisfy additional dependencies.

Expand Down
4 changes: 2 additions & 2 deletions _docs/message-queue.md
Expand Up @@ -3,12 +3,12 @@ layout: docs
title: Message Queue
position: 90
group: Docs
subDocs:
subNav:
- title: Got mail
href: got-mail
- title: Send a message
href: send-a-message
permalink: /documentation/message-queue.html
permalink: /get-started/documentation/message-queue.html
---

A Message-Queue provides the possibility to process long running tasks in a encapsulated context.
Expand Down
4 changes: 2 additions & 2 deletions _docs/persistence-container.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Persistence Container
position: 80
group: Docs
subDocs:
subNav:
- title: Singleton SessionBean
href: singleton-sessionbean
- title: Stateless SessionBean
Expand All @@ -12,7 +12,7 @@ subDocs:
href: stateful-sessionbean
- title: Example
href: example
permalink: /documentation/persistence-container.html
permalink: /get-started/documentation/persistence-container.html
---

As described in the introduction the application is designed inside a runtime environment like
Expand Down
2 changes: 1 addition & 1 deletion _docs/runtime-environment.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Runtime Environment
position: 150
group: Docs
permalink: /documentation/runtime-environment.html
permalink: /get-started/documentation/runtime-environment.html
---

The appserver.io runtime environment is delivered by the package [runtime](<https://github.com/appserver-io-php/runtime>).
Expand Down
10 changes: 5 additions & 5 deletions _docs/servlet-engine.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Servlet Engine
position: 50
group: Docs
subDocs:
subNav:
- title: How can a Servlet-Engine help
href: how-can-a-servlet-engine-help
- title: Bootstrapping a Servlet
Expand All @@ -14,7 +14,7 @@ subDocs:
href: starting-a-session
- title: Optional XML Configuration
href: optional-xml-configuration
permalink: /documentation/servlet-engine.html
permalink: /get-started/documentation/servlet-engine.html
---

Originally Servlets are the Java counterpart to other dynamic web technologies like PHP or the
Expand Down Expand Up @@ -389,9 +389,9 @@ complicated thing and we tried to break it down to be as simple as we can imagin
to configure anything, but you still have to option to configure everything in a XML configuration file that
has to be stored in you applications `WEB-INF` folder as `web.xml`.

> Other as a simple web server, we've the possiblity to hold a number of sessions persistent in the application
> Other as a simple web server, we've the possibility to hold a number of sessions persistent in the application
> servers memory. This ensures great performance on the one hand, but came with great responsibility for the
> developer on the other. By writing an application that should be runned in an application server, you have to
> developer on the other. By writing an application that should be run in an application server, you have to
> be aware of what you are doing and have a look at the memory footprint of your application.
## Optional XML Configuration
Expand Down Expand Up @@ -676,7 +676,7 @@ You must specify a name, unique in your application, for the servlet here. This
[map](#servlet-mapping) your servlet to a request URL later.

##### `/web-app/servlet/servlet-class` *string*
The Servlet-Engine needs to know, which class has to instanciated when initializing the servlet. So you have to specify the fully qualified name of your servlet here.
The Servlet-Engine needs to know, which class has to instantiated when initializing the servlet. So you have to specify the fully qualified name of your servlet here.

##### `/web-app/servlet/init-param` *string*
You can specifiy a random number of initialization parameters here. The parameters will be parsed when the
Expand Down
2 changes: 1 addition & 1 deletion _docs/timer-service.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Timer Service
position: 100
group: Docs
permalink: /documentation/timer-service.html
permalink: /get-started/documentation/timer-service.html
---

In most of your projects you have the need to schedule things to be processed in regular intervals
Expand Down
2 changes: 1 addition & 1 deletion _docs/uninstall.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Uninstall
position: 160
group: Docs
permalink: /documentation/uninstall.html
permalink: /get-started/documentation/uninstall.html
---

Before uninstalling you should stop all services which are still running (rpm-based packages will see to that themselves), otherwise there might
Expand Down
6 changes: 3 additions & 3 deletions _docs/webserver.md
Expand Up @@ -3,7 +3,7 @@ layout: docs
title: Webserver
position: 40
group: Docs
subDocs:
subNav:
- title: Connection Handler
href: connection-handler
- title: Server Modules
Expand All @@ -24,7 +24,7 @@ subDocs:
href: rewrites
- title: VirtualHost Examples
href: virtualhost-examples
permalink: /documentation/webserver.html
permalink: /get-started/documentation/webserver.html
---

The Webserver is build and configured like any other server component using our
Expand Down Expand Up @@ -177,7 +177,7 @@ Find an overview of all modules below ...
| `CoreModule` | HTTP server features that are always available such as serving static resources and finding defined file handlers. |
| `PhpModule` | Acts like a classic php Webserver module (such as `mod_php` for apache) which calls and runs your requested php scripts in an isolated context with all globals (such as `$_SERVER`, `$_GET`, `$_POST` etc.) prepared in the common way. |
| `FastCgiModule` | The Module allows you to connect several fastcgi backends (such as `php-fpm` or `hhvm`) based on configured file-handlers. |
| `ServletEngine` | The ServletEngine introduces a super fast and simple way to implement an entry point to handle HTTP requests that allows you to execute all performance critical tasks. Please see [Servlet Engine](<{{ "/documentation/servlet-engine.html" | prepend: site.baseurl }}>) for full documentation. |
| `ServletEngine` | The ServletEngine introduces a super fast and simple way to implement an entry point to handle HTTP requests that allows you to execute all performance critical tasks. Please see [Servlet Engine](<{{ "/get-started/documentation/servlet-engine.html" | prepend: site.baseurl }}>) for full documentation. |
| `DeflateModule` | It provides the `deflate` output filter that allows output from your server to be compressed before being sent to the client over the network. |
| `ProfileModule` | Allows request based realtime profiling using external tools like logstash and kibana. |

Expand Down
16 changes: 16 additions & 0 deletions _faq/implementation.md
@@ -0,0 +1,16 @@
---
layout: faq
title: Implementation
position: 20
group: FAQ
subNav:
- title: How to prevent segmentation faults?
href: how-to-prevent-segmentation-faults?
permalink: /get-started/faq/implementation.html
---

### How to prevent segmentation faults?
> Stackable objects created in specific thread contexts have to be hold in this context while other objects
> references those stackable objects. If The context will be destroyed by e.g. an ending thread, all references will
> point to an invalid memory address which ends up in a segmentation fault. If the context will exists while the
> process runs you don't have to worry about at all.

0 comments on commit 4519834

Please sign in to comment.