public class AdjunctManager extends Object
Adjuncts are packaging of JavaScript, CSS, and other static assets in jar files with dependency information between them. This allows JavaScript libraries and other static assets to be reused across different projects through Maven/Ivy.
To use AdjunctManager
in your application, create one instance, and bind it to URL
(like you do any other objects.) The most typical way of doing this is to define it as a
field in your top-level object.
public class MyApplication { public final AdjunctManager adjuncts = new AdjunctManager(context,getClass().getClassLoader(),"/adjuncts"); }
How you include an adjunct will depend on your template language, but for example in Jelly you do:
<st:adjunct includes="org.kohsuke.stapler.bootstrap"/>
Or from Groovy you do:
adjunct "org.kohsuke.stapler.bootstrap"
... and this produces a series of style and script tags that include all the necessary JavaScript, CSS, and their dependencies.
Internally, this class provides caching for Adjunct
s.
Adjunct
Modifier and Type | Field and Description |
---|---|
boolean |
debug
Hint instructing adjuncts to load a debuggable non-minified version of the script,
as opposed to the production version.
|
String |
rootURL
Absolute URL of the
AdjunctManager in the calling application where it is bound to. |
WebApp |
webApp |
Constructor and Description |
---|
AdjunctManager(javax.servlet.ServletContext context,
ClassLoader classLoader,
String rootURL)
Deprecated.
|
AdjunctManager(javax.servlet.ServletContext context,
ClassLoader classLoader,
String rootURL,
long expiration) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
allowResourceToBeServed(String absolutePath)
Controls whether the given resource can be served to browsers.
|
void |
doDynamic(StaplerRequest req,
StaplerResponse rsp)
Serves resources in the class loader.
|
static AdjunctManager |
get(javax.servlet.ServletContext context) |
Adjunct |
get(String name)
Obtains the adjunct.
|
public final String rootURL
AdjunctManager
in the calling application where it is bound to.
The path is treated relative from the context path of the application, and it
needs to end without '/'. So it needs to be something like "foo/adjuncts" or
just "adjuncts". Can be e.g. adjuncts/uNiQuEhAsH
to improve caching behavior.
public boolean debug
public final WebApp webApp
@Deprecated public AdjunctManager(javax.servlet.ServletContext context, ClassLoader classLoader, String rootURL)
public AdjunctManager(javax.servlet.ServletContext context, ClassLoader classLoader, String rootURL, long expiration)
classLoader
- ClassLoader to load adjuncts from.rootURL
- See rootURL
for the meaning of this parameter.expiration
- milliseconds from service time until expiration, for doDynamic(org.kohsuke.stapler.StaplerRequest, org.kohsuke.stapler.StaplerResponse)
(as in StaplerResponse.serveFile(StaplerRequest, URL, long)
);
if rootURL
is unique per session then this can be very long;
otherwise a day might be reasonablepublic static AdjunctManager get(javax.servlet.ServletContext context)
public Adjunct get(String name) throws IOException
IOException
- if failed to locate Adjunct
.public void doDynamic(StaplerRequest req, StaplerResponse rsp) throws IOException, javax.servlet.ServletException
IOException
javax.servlet.ServletException
protected boolean allowResourceToBeServed(String absolutePath)
This method can be overridden by the sub classes to change the access control behavior.
AdjunctManager
is capable of serving all the resources visible
in the classloader by default. If the resource files need to be kept private,
return false, which causes the request to fail with 401.
Otherwise return true, in which case the resource will be served.
Copyright © 2016. All rights reserved.