public class JettyRouteSpec extends java.lang.Object implements ComponentLifecycle
JettyRoutingService
to help decide which branch to execute.
Since the URI itself may contain parameters that may need to be extracted as metadata, it is possible to do that as part of the
matching process here. Given a URL of /record/zeus/apollo
the following configuration will match provided the HTTP method
is POST
; the URL pattern will be parsed for capturing groups and the metadata parentId=zeus
,
childId=apollo
will be set; the next service-id will be set to handleInsert
.
<jetty-route-spec>
<condition>
<url-pattern>^/record/(.*)/(.*)$</url-pattern>
<method>POST</method>
<metadata-key>parentId</metadata-key>
<metadata-key>childId</metadata-key>
</condition>
<service-id>handleInsert</service-id>
</jetty-route-spec>
You could achieve the same effect with a ExtractMetadataService
as part of your normal service execution chain.
Constructor and Description |
---|
JettyRouteSpec() |
JettyRouteSpec(java.lang.String urlPattern,
java.lang.String method,
java.util.List<java.lang.String> keys,
java.lang.String serviceId)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
JettyRouteCondition.JettyRoute |
build(java.lang.String method,
java.lang.String uri) |
void |
close()
Closes the component.
|
JettyRouteCondition |
getCondition() |
java.util.List<java.lang.String> |
getMetadataKeys()
Deprecated.
since 3.9.0 use a condition instead
|
java.lang.String |
getMethod()
Deprecated.
since 3.9.0 use a condition instead
|
java.lang.String |
getServiceId() |
java.lang.String |
getUrlPattern()
Deprecated.
since 3.9.0 use a condition instead
|
void |
init()
Initialises the component.
|
void |
setCondition(JettyRouteCondition condition)
Specify the conditions for the route.
|
void |
setMetadataKeys(java.util.List<java.lang.String> s)
Deprecated.
since 3.9.0 use a condition instead
|
void |
setMethod(java.lang.String method)
Deprecated.
since 3.9.0 use a condition instead
|
void |
setServiceId(java.lang.String serviceId)
Set the service-id that will be used if the route matches.
|
void |
setUrlPattern(java.lang.String urlPattern)
Deprecated.
since 3.9.0 use a condition instead
|
void |
start()
Starts the component.
|
void |
stop()
Stop the component
|
java.lang.String |
toString() |
JettyRouteSpec |
withCondition(JettyRouteCondition condition) |
JettyRouteSpec |
withServiceId(java.lang.String s) |
public JettyRouteSpec()
@Deprecated public JettyRouteSpec(java.lang.String urlPattern, java.lang.String method, java.util.List<java.lang.String> keys, java.lang.String serviceId)
public void init() throws CoreException
ComponentLifecycle
Component initialisation includes config verification, creation of connections etc.
init
in interface ComponentLifecycle
CoreException
- wrapping any underlying Exception
spublic void start() throws CoreException
ComponentLifecycle
Once a component is started it should be ready to process messages. In the case of AdaptrisMessageConsumer
, calling start
will begin message delivery.
start
in interface ComponentLifecycle
CoreException
- wrapping any underlying Exception
spublic void stop()
ComponentLifecycle
A stopped component is not expected to be ready to process messages. In the case of AdaptrisMessageConsumer
, calling stop
will pause message delivery. Throwing a RuntimeException
may cause unintended consequences
stop
in interface ComponentLifecycle
public void close()
ComponentLifecycle
A closed component should release any connections it uses, etc. and clean up completely. Throwing a RuntimeException
may
cause unintended consequences
close
in interface ComponentLifecycle
@Deprecated @ConfigDeprecated(removalVersion="4.0.0", message="Use a condition instead", groups=java.lang.Deprecated.class) public java.lang.String getUrlPattern()
@Deprecated @Removal(version="4.0.0", message="Use a condition instead") public void setUrlPattern(java.lang.String urlPattern)
urlPattern
- the pattern.@Deprecated @ConfigDeprecated(removalVersion="4.0.0", message="Use a condition instead", groups=java.lang.Deprecated.class) public java.lang.String getMethod()
@Deprecated @Removal(version="4.0.0", message="Use a condition instead") public void setMethod(java.lang.String method)
@Deprecated @ConfigDeprecated(removalVersion="4.0.0", message="Use a condition instead", groups=java.lang.Deprecated.class) public java.util.List<java.lang.String> getMetadataKeys()
@Deprecated @Removal(version="4.0.0", message="Use a condition instead") public void setMetadataKeys(java.util.List<java.lang.String> s)
The list of keys is processed in order, against each capturing match group in order
s
- list of keys.public java.lang.String getServiceId()
public void setServiceId(java.lang.String serviceId)
public JettyRouteSpec withServiceId(java.lang.String s)
public JettyRouteCondition getCondition()
public void setCondition(JettyRouteCondition condition)
condition
- the condition.public JettyRouteSpec withCondition(JettyRouteCondition condition)
public JettyRouteCondition.JettyRoute build(java.lang.String method, java.lang.String uri) throws CoreException
CoreException
public java.lang.String toString()
toString
in class java.lang.Object