Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

UrlRewrite

...

Component

...

Available

...

as

...

of

...

Camel

...

2.11

...

The camel-urlrewrite

...

component

...

allows

...

to

...

plugin

...

url

...

rewrite

...

functionality

...

to

...

HTTP

...

,

...

HTTP4

...

,

...

Jetty

...

,

...

or

...

AHC

...

components.

...

This

...

component

...

integrates

...

the

...

UrlRewriteFilter

...

project

...

with

...

Apache

...

Camel.

...

This

...

allows

...

you

...

to

...

use

...

the

...

capabilities

...

from

...

the

...

url

...

rewrite

...

project

...

with

...

your

...

Camel

...

routes.

...

This

...

component

...

requires

...

that

...

your

...

Camel

...

routes

...

starts

...

from

...

a

...

servlet

...

based

...

endpoint

...

such

...

as

...

Jetty

...

or

...

Servlet

...

.

...

Options

The camel-urlrewrite

...

component

...

offers

...

the

...

following options

Wiki Markup
 options

{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{conf}} | {{null}} | To use a custom {{org.tuckey.web.filters.urlrewrite.Conf}} as the configuration for the url rewrite filter. |
| {{configFile}} | {{null}} | Refers to a file name to load as the configuration file. The file should be XML file. |
| {{modRewriteConfFile}} | {{null}} | Refers to a file name to load as the Apache mod_rewrite style based configuration file. This file should be a plain text file. |
| {{modRewriteConfText}} | {{null}} | Is used to quickly configure a Apache mod_rewrite style based configuration without using a file. |
| {{useQueryString}} | {{false}} | Whether to use query strings in the url rewrite rules. |
| {{useContext}} | {{false}} | Whether to include context-path or not in the matching. Will be default remove the context-path. |
| {{defaultMatchType}} | {{"regex"}} | Which match type to use. Can be either "wildcard" or "regex". |
| {{decodeUsing}} | {{null}} | To use a specific encoding such as "utf-8" or "iso-8859-1". |
{div}

h3. Usage

The following component producers supports using together with the {{camel-urlrewrite}} component: [Http], [Http4] and [Jetty].

Usage

The following component producers supports using together with the camel-urlrewrite component: Http, Http4 and Jetty.

Wiki Markup
{div:class=confluenceTableSmall}
|| Component || Class ||
| {{camel-http}} | {{org.apache.camel.component.urlrewrite.http.HttpUrlRewrite}} |
| {{camel-jetty}} | {{org.apache.camel.component.urlrewrite.http.HttpUrlRewrite}} |
| {{camel-http4}} | {{org.apache.camel.component.urlrewrite.http4.HttpUrlRewrite}} |
{div}

You

...

setup

...

the

...

url

...

rewrite

...

as

...

a

...

bean

...

of

...

the

...

type

...

org.apache.camel.component.urlrewrite.http.HttpUrlRewrite

...

(when

...

using

...

Http

...

component)

...

as

...

shown

...

below:

Wiki Markup

{snippet:id=e1|lang=java|url=camel/trunk/components/camel-urlrewrite/src/test/java/org/apache/camel/component/urlrewrite/jetty/JettyUrlRewriteTest.java}

And

...

in

...

XML

...

DSL

...

you

...

can

...

do:

Code Block
xml
xml

{code:xml}
<bean id="myRewrite" class="org.apache.camel.component.urlrewrite.HttpUrlRewrite">
  <property name="configFile" value="example/urlrewrite2.xml"/>
</bean>
{code}

In

...

the

...

bean

...

above

...

we

...

configure

...

it

...

with

...

the

...

configFile

...

option

...

which

...

is

...

a

...

XML

...

UrlRewriteFilter

...

configuration

...

file.

Wiki Markup

{snippet:id=e1|lang=xml|url=camel/trunk/components/camel-urlrewrite/src/test/resources/example/urlrewrite2.xml}
Tip

See more details at UrlRewriteFilter for how to configure the XML rules file.

In the Camel routes, you bridge the endpoints, and refer to the url rewrite on the producer endpoint as shown below. Notice how we refer to our url rewrite filter using the urlRewrite option in the endpoint uri.

Wiki Markup


{tip}
See more details at [UrlRewriteFilter|http://code.google.com/p/urlrewritefilter/] for how to configure the XML rules file.
{tip}

In the Camel routes, you bridge the endpoints, and refer to the url rewrite on the producer endpoint as shown below. Notice how we refer to our url rewrite filter using the {{urlRewrite}} option in the endpoint uri.
{snippet:id=e2|lang=java|url=camel/trunk/components/camel-urlrewrite/src/test/java/org/apache/camel/component/urlrewrite/jetty/JettyUrlRewriteTest.java}

h4. 

Using

...

load

...

balancing

...

eip

...

You

...

can

...

also

...

use

...

Camel's

...

Load

...

Balancer

...

together

...

with

...

UrlRewrite

...

,

...

as

...

shown

...

below.

...

In

...

this

...

code

...

we

...

use

...

the

...

failover

...

load

...

balancer,

...

to

...

failover

...

to

...

the

...

2nd

...

endpoint

...

(which

...

goes

...

to

...

myapp3)

...

in

...

case

...

of

...

any

...

exception

...

thrown.

Wiki Markup

{snippet:id=e1|lang=java|url=camel/trunk/components/camel-urlrewrite/src/test/java/org/apache/camel/component/urlrewrite/jetty/JettyUrlRewriteLoadBalanceFailoverTest.java}


h4. Using Apache 

Using Apache mod_rewrite

...

style

...

configuration

...

The

...

UrlRewriteFilter

...

project

...

also

...

supports

...

Apache

...

mod_rewrite

...

style

...

configuration.

...

For

...

example

...

to

...

configure

...

the

...

bean

...

using

...

the

...

modRewriteConfFile

...

property

...

to

...

refer

...

to

...

a

...

mod

...

configuration

...

file:

Code Block
xml
xml

{code:xml}
<bean id="myRewrite" class="org.apache.camel.component.urlrewrite.HttpUrlRewrite">
  <property name="modRewriteConfFile" value="example/modrewrite.cxf"/>
</bean>
{code}

Which

...

then

...

can

...

contain

...

mod

...

rewrite

...

rules

...

and

...

the

...

likes:

Wiki Markup

{snippet:e1|lang=none|url=camel/trunk/components/camel-urlrewrite/src/test/resources/example/modrewrite.cfg}

You

...

can

...

have

...

multiple

...

RewriteRule

...

rules

...

and

...

other

...

configurations.

...

See

...

more

...

details

...

at

...

UrlRewriteFilter

...

project.

Writing custom url rewriters

You can implement your custom url rewriters by implementing either of the following interfaces from the component of choice:

Component(s):

...

camel-http

...

/

...

camel-jetty

...

  • org.apache.camel.component.http.UrlRewrite

...

  • org.apache.camel.component.http.HttpServletUrlRewrite

...

Component(s):

...

camel-http4

...

  • org.apache.camel.component.http4.UrlRewrite

...

  • org.apache.camel.component.http4.HttpServletUrlRewrite

...

The

...

former

...

is

...

a

...

simple

...

and

...

generic

...

interface,

...

which

...

is

...

not

...

dependent

...

on

...

the

...

Servlet

...

API.

...


The

...

later

...

is

...

servlet

...

based

...

which

...

requires

...

the

...

Camel

...

route

...

to

...

start

...

from

...

a

...

servlet

...

based

...

component

...

such

...

as

...

Jetty

...

or

...

Servlet

...

.

...

The

...

servlet

...

based

...

is

...

more

...

feature

...

rich

...

and

...

that's

...

the

...

API

...

we

...

use

...

to

...

integrate

...

with

...

the

...

UrlRewriteFilter

...

project

...

in

...

this

...

camel-urlrewrite

...

component.

...

A

...

simple

...

url

...

rewrite

...

filter

...

In

...

this

...

example

...

we

...

implement

...

a

...

custom

...

org.apache.camel.component.http.UrlRewrite

...

that

...

just

...

replaces

...

yahoo

...

with

...

google.

...

Mind

...

this

...

example

...

is

...

based

...

on

...

a

...

unit

...

test,

...

and

...

only

...

for

...

demonstration

...

purposes.

...

As

...

its

...

java

...

code

...

you

...

have

...

full

...

power

...

to

...

implement

...

more

...

complex

...

logic.

...

The

...

url

...

parameter

...

contains

...

the

...

full

...

url

...

including

...

scheme://hostname:port/path?query.

...

The

...

relativeUrl

...

parameter

...

is

...

the

...

url

...

without

...

the

...

endpoint

...

configured

...

path.

...

Notice

...

this

...

option

...

may

...

be

...

null

...

if

...

the

...

url

...

doesn't

...

start

...

with

...

the

...

endpoint

...

configured

...

path.

Wiki Markup
 

{snippet:id=e1|lang=java|url=camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/GoogleUrlRewrite.java}


{include:Endpoint See Also}
- [Jetty]
- [Http4]
- [Http]
- [AHC]
Include Page
Endpoint See Also
Endpoint See Also