Uses of Class
org.eclipse.jetty.webapp.WebAppContext
-
Packages that use WebAppContext Package Description org.eclipse.jetty.annotations Jetty Annotations : Support for Servlet Annotationsorg.eclipse.jetty.ant Jetty Ant : Ant Tasks and Configurationorg.eclipse.jetty.deploy.providers Jetty Deploy : Webapp Deployment Providersorg.eclipse.jetty.maven.plugin Jetty Maven Plugin : Support for Jetty in Maven build lifecycleorg.eclipse.jetty.osgi.annotations org.eclipse.jetty.osgi.boot org.eclipse.jetty.osgi.boot.internal.webapp org.eclipse.jetty.plus.annotation Jetty Plus : Limited JEE Annotation Supportorg.eclipse.jetty.plus.webapp Jetty Plus : Limited Additional JEE Webapp Supportorg.eclipse.jetty.quickstart org.eclipse.jetty.webapp Jetty Util : Modular Web Application Support -
-
Uses of WebAppContext in org.eclipse.jetty.annotations
Fields in org.eclipse.jetty.annotations declared as WebAppContext Modifier and Type Field Description protected WebAppContextAbstractDiscoverableAnnotationHandler. _contextprotected WebAppContextDeclareRolesAnnotationHandler. _contextprotected WebAppContextMultiPartConfigAnnotationHandler. _contextprotected WebAppContextPostConstructAnnotationHandler. _contextprotected WebAppContextResourceAnnotationHandler. _contextprotected WebAppContextRunAsAnnotationHandler. _contextprotected WebAppContextResourcesAnnotationHandler. _wacMethods in org.eclipse.jetty.annotations with parameters of type WebAppContext Modifier and Type Method Description voidAnnotationConfiguration. cloneConfigure(WebAppContext template, WebAppContext context)voidAnnotationConfiguration. configure(WebAppContext context)voidAnnotationConfiguration. createServletContainerInitializerAnnotationHandlers(WebAppContext context, java.util.List<javax.servlet.ServletContainerInitializer> scis)AnnotationConfiguration.ServletContainerInitializerOrderingAnnotationConfiguration. getInitializerOrdering(WebAppContext context)Jetty-specific extension that allows an ordering to be applied across ALL ServletContainerInitializers.protected intAnnotationConfiguration. getMaxScanWait(WebAppContext context)Work out how long we should wait for the async scanning to occur.java.util.List<javax.servlet.ServletContainerInitializer>AnnotationConfiguration. getNonExcludedInitializers(WebAppContext context)Get SCIs that are not excluded from considerationbooleanAnnotationConfiguration. isFromContainerClassPath(WebAppContext context, javax.servlet.ServletContainerInitializer sci)Test if the ServletContainerInitializer is from the container classpathbooleanAnnotationConfiguration. isFromExcludedJar(WebAppContext context, javax.servlet.ServletContainerInitializer sci, Resource sciResource)Check to see if the ServletContainerIntializer loaded via the ServiceLoader came from a jar that is excluded by the fragment ordering.booleanAnnotationConfiguration. isFromWebInfClasses(WebAppContext context, Resource sci)Test if the ServletContainerInitializer is from WEB-INF/classesprotected booleanAnnotationConfiguration. isUseMultiThreading(WebAppContext context)Check if we should use multiple threads to scan for annotations or notvoidAnnotationConfiguration. parseContainerPath(WebAppContext context, AnnotationParser parser)Scan jars on container path.voidAnnotationConfiguration. parseWebInfClasses(WebAppContext context, AnnotationParser parser)Scan classes in WEB-INF/classesvoidAnnotationConfiguration. parseWebInfLib(WebAppContext context, AnnotationParser parser)Scan jars in WEB-INF/libvoidAnnotationConfiguration. postConfigure(WebAppContext context)voidAnnotationConfiguration. preConfigure(WebAppContext context)voidAnnotationDecorator. registerHandlers(WebAppContext context)protected voidAnnotationConfiguration. scanForAnnotations(WebAppContext context)Perform scanning of classes for annotations -
Uses of WebAppContext in org.eclipse.jetty.ant
Subclasses of WebAppContext in org.eclipse.jetty.ant Modifier and Type Class Description classAntWebAppContextExtension of WebAppContext to allow configuration via Ant environment.Methods in org.eclipse.jetty.ant with parameters of type WebAppContext Modifier and Type Method Description voidAntWebInfConfiguration. configure(WebAppContext context)Adds classpath files into web application classloader, and sets web.xml and base directory for the configured web application.voidAntWebInfConfiguration. preConfigure(WebAppContext context) -
Uses of WebAppContext in org.eclipse.jetty.deploy.providers
Methods in org.eclipse.jetty.deploy.providers with parameters of type WebAppContext Modifier and Type Method Description protected voidWebAppProvider. initializeWebAppContextDefaults(WebAppContext webapp) -
Uses of WebAppContext in org.eclipse.jetty.maven.plugin
Subclasses of WebAppContext in org.eclipse.jetty.maven.plugin Modifier and Type Class Description classJettyWebAppContextJettyWebAppContext Extends the WebAppContext to specialize for the maven environment.Methods in org.eclipse.jetty.maven.plugin with parameters of type WebAppContext Modifier and Type Method Description static voidServerSupport. addWebApplication(Server server, WebAppContext webapp)voidMavenQuickStartConfiguration. configure(WebAppContext context)voidMavenWebInfConfiguration. configure(WebAppContext context)voidMavenQuickStartConfiguration. deconfigure(WebAppContext context)protected java.util.List<Resource>MavenWebInfConfiguration. findClassDirs(WebAppContext context)Add in the classes dirs from test/classes and target/classesprotected java.util.List<Resource>MavenWebInfConfiguration. findJars(WebAppContext context)Get the jars to examine from the files from which we have synthesized the classpath.voidMavenQuickStartConfiguration. preConfigure(WebAppContext context) -
Uses of WebAppContext in org.eclipse.jetty.osgi.annotations
Methods in org.eclipse.jetty.osgi.annotations with parameters of type WebAppContext Modifier and Type Method Description protected voidAnnotationConfiguration. parseBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle bundle)protected voidAnnotationConfiguration. parseFragmentBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle fragmentBundle)Scan a fragment bundle for servlet annotationsprotected voidAnnotationConfiguration. parseRequiredBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle, org.osgi.framework.Bundle requiredBundle)Scan a bundle required by the webbundle for servlet annotationsprotected voidAnnotationConfiguration. parseWebBundle(WebAppContext context, AnnotationParser parser, org.osgi.framework.Bundle webbundle)Scan a bundle required by the webbundle for servlet annotationsvoidAnnotationConfiguration. parseWebInfClasses(WebAppContext context, AnnotationParser parser)voidAnnotationConfiguration. parseWebInfLib(WebAppContext context, AnnotationParser parser)Here is the order in which jars and osgi artifacts are scanned for discoverable annotations. -
Uses of WebAppContext in org.eclipse.jetty.osgi.boot
Methods in org.eclipse.jetty.osgi.boot that return WebAppContext Modifier and Type Method Description protected WebAppContextAbstractWebAppProvider.OSGiApp. newWebApp()Methods in org.eclipse.jetty.osgi.boot with parameters of type WebAppContext Modifier and Type Method Description voidOSGiWebInfConfiguration. configure(WebAppContext context)Allow fragments to supply some resources that are added to the baseResource of the webapp.protected java.util.List<Resource>OSGiWebInfConfiguration. findJars(WebAppContext context)Consider the fragment bundles associated with the bundle of the webapp being deployed.voidOSGiWebInfConfiguration. postConfigure(WebAppContext context)voidOSGiWebInfConfiguration. preConfigure(WebAppContext context)Check to see if there have been any bundle symbolic names added of bundles that should be regarded as being on the container classpath, and scanned for fragments, tlds etc etc.voidAbstractWebAppProvider.OSGiApp. setWebAppContext(WebAppContext webApp) -
Uses of WebAppContext in org.eclipse.jetty.osgi.boot.internal.webapp
Methods in org.eclipse.jetty.osgi.boot.internal.webapp with parameters of type WebAppContext Modifier and Type Method Description voidOSGiWebappClassLoader. setWebappContext(WebAppContext webappContext)In the case of the generation of a webapp via a jetty context file we need a proper classloader to setup the app before we have the WebappContext So we place a fake one there to start with.Constructors in org.eclipse.jetty.osgi.boot.internal.webapp with parameters of type WebAppContext Constructor Description OSGiWebappClassLoader(java.lang.ClassLoader parent, WebAppContext context, org.osgi.framework.Bundle contributor) -
Uses of WebAppContext in org.eclipse.jetty.plus.annotation
Methods in org.eclipse.jetty.plus.annotation with parameters of type WebAppContext Modifier and Type Method Description voidContainerInitializer. callStartup(WebAppContext context)voidContainerInitializer. resolveClasses(WebAppContext context, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> classMap) -
Uses of WebAppContext in org.eclipse.jetty.plus.webapp
Fields in org.eclipse.jetty.plus.webapp declared as WebAppContext Modifier and Type Field Description protected WebAppContextPlusDecorator. _contextMethods in org.eclipse.jetty.plus.webapp with parameters of type WebAppContext Modifier and Type Method Description voidPlusDescriptorProcessor. addInjections(WebAppContext context, Descriptor descriptor, XmlParser.Node node, java.lang.String jndiName, java.lang.Class<?> valueClass)Iterate over the<injection-target>entries for a nodeprotected voidPlusDescriptorProcessor. bindEntry(WebAppContext context, java.lang.String name, java.lang.Class<?> typeClass)Bind a resource with the given name from web.xml of the given type with a jndi resource from either the server or the webapp's naming environment.voidEnvConfiguration. bindEnvEntries(WebAppContext context)Bind all EnvEntries that have been declared, so that the processing of the web.xml file can potentially override them.voidPlusDescriptorProcessor. bindMessageDestinationRef(WebAppContext context, java.lang.String name, java.lang.Class<?> typeClass)voidPlusDescriptorProcessor. bindResourceEnvRef(WebAppContext context, java.lang.String name, java.lang.Class<?> typeClass)voidPlusDescriptorProcessor. bindResourceRef(WebAppContext context, java.lang.String name, java.lang.Class<?> typeClass)Bind a resource reference.voidPlusConfiguration. bindUserTransaction(WebAppContext context)voidPlusConfiguration. cloneConfigure(WebAppContext template, WebAppContext context)voidEnvConfiguration. configure(WebAppContext context)voidPlusConfiguration. configure(WebAppContext context)protected voidEnvConfiguration. createEnvContext(WebAppContext wac)voidEnvConfiguration. deconfigure(WebAppContext context)Remove jndi setup from startvoidPlusConfiguration. deconfigure(WebAppContext context)voidEnvConfiguration. destroy(WebAppContext context)Remove all jndi setupvoidPlusDescriptorProcessor. end(WebAppContext context, Descriptor descriptor)protected voidPlusConfiguration. lockCompEnv(WebAppContext wac)voidPlusDescriptorProcessor. makeEnvEntryInjectionsAndBindings(WebAppContext context, Descriptor descriptor, XmlParser.Node node, java.lang.String name, java.lang.String type, java.lang.String value)Make injections and any java:comp/env bindings necessary given an env-entry declaration.voidPlusConfiguration. postConfigure(WebAppContext context)voidEnvConfiguration. preConfigure(WebAppContext context)voidPlusConfiguration. preConfigure(WebAppContext context)voidPlusDescriptorProcessor. start(WebAppContext context, Descriptor descriptor)protected voidPlusConfiguration. unlockCompEnv(WebAppContext wac)voidPlusDescriptorProcessor. visitEnvEntry(WebAppContext context, Descriptor descriptor, XmlParser.Node node)JavaEE 5.4.1.3voidPlusDescriptorProcessor. visitMessageDestinationRef(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Common Annotations Spec section 2.3:voidPlusDescriptorProcessor. visitPostConstruct(WebAppContext context, Descriptor descriptor, XmlParser.Node node)If web.xml has at least 1 post-construct, then all post-constructs in fragments are ignored.voidPlusDescriptorProcessor. visitPreDestroy(WebAppContext context, Descriptor descriptor, XmlParser.Node node)pre-destroy is the name of a class and method to call just as the instance is being destroyedvoidPlusDescriptorProcessor. visitResourceEnvRef(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Common Annotations Spec section 2.3:voidPlusDescriptorProcessor. visitResourceRef(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Common Annotations Spec section 2.3:Constructors in org.eclipse.jetty.plus.webapp with parameters of type WebAppContext Constructor Description PlusDecorator(WebAppContext context) -
Uses of WebAppContext in org.eclipse.jetty.quickstart
Subclasses of WebAppContext in org.eclipse.jetty.quickstart Modifier and Type Class Description classQuickStartWebAppQuickStartWarFields in org.eclipse.jetty.quickstart declared as WebAppContext Modifier and Type Field Description protected WebAppContextQuickStartDescriptorGenerator. _webAppMethods in org.eclipse.jetty.quickstart with parameters of type WebAppContext Modifier and Type Method Description voidQuickStartConfiguration. configure(WebAppContext context)voidPreconfigureDescriptorProcessor. end(WebAppContext context, Descriptor descriptor)voidQuickStartDescriptorProcessor. end(WebAppContext context, Descriptor descriptor)ResourceQuickStartConfiguration. getQuickStartWebXml(WebAppContext context)Get the quickstart-web.xml file as a Resource.voidQuickStartConfiguration. preConfigure(WebAppContext context)voidPreconfigureDescriptorProcessor. saveSnippet(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidPreconfigureDescriptorProcessor. start(WebAppContext context, Descriptor descriptor)voidQuickStartDescriptorProcessor. start(WebAppContext context, Descriptor descriptor)voidQuickStartDescriptorProcessor. visitContainerInitializer(WebAppContext context, ContainerInitializer containerInitializer)voidQuickStartDescriptorProcessor. visitContextParam(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Process a context-param elementvoidQuickStartDescriptorProcessor. visitMetaInfResource(WebAppContext context, Resource dir)voidQuickStartDescriptorProcessor. visitServletMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Process a servlet-mapping elementConstructors in org.eclipse.jetty.quickstart with parameters of type WebAppContext Constructor Description QuickStartDescriptorGenerator(WebAppContext w, java.lang.String extraXML, java.lang.String originAttribute, boolean generateOrigin) -
Uses of WebAppContext in org.eclipse.jetty.webapp
Fields in org.eclipse.jetty.webapp declared as WebAppContext Modifier and Type Field Description protected WebAppContextDiscoveredAnnotation. _contextprotected WebAppContextWebInfConfiguration.ContainerPathNameMatcher. _contextprotected WebAppContextWebInfConfiguration.WebAppPathNameMatcher. _contextMethods in org.eclipse.jetty.webapp that return WebAppContext Modifier and Type Method Description static WebAppContextWebAppContext. getCurrentWebAppContext()Methods in org.eclipse.jetty.webapp with parameters of type WebAppContext Modifier and Type Method Description voidStandardDescriptorProcessor. addFilterMapping(java.lang.String filterName, XmlParser.Node node, WebAppContext context, Descriptor descriptor)ServletMappingStandardDescriptorProcessor. addServletMapping(java.lang.String servletName, XmlParser.Node node, WebAppContext context, Descriptor descriptor)voidFragmentConfiguration. addWebFragments(WebAppContext context, MetaData metaData)Add in fragment descriptors that have already been discovered by MetaInfConfigurationvoidStandardDescriptorProcessor. addWelcomeFiles(WebAppContext context, XmlParser.Node node)voidAbstractConfiguration. cloneConfigure(WebAppContext template, WebAppContext context)voidConfiguration. cloneConfigure(WebAppContext template, WebAppContext context)Clone configuration instance.voidConfiguration.Wrapper. cloneConfigure(WebAppContext template, WebAppContext context)voidWebInfConfiguration. cloneConfigure(WebAppContext template, WebAppContext context)voidAbstractConfiguration. configure(WebAppContext context)voidCloneConfiguration. configure(WebAppContext context)voidConfiguration. configure(WebAppContext context)Configure WebApp.voidConfiguration.Wrapper. configure(WebAppContext context)voidJettyWebXmlConfiguration. configure(WebAppContext context)Configure Apply web-jetty.xml configurationvoidWebInfConfiguration. configure(WebAppContext context)voidWebXmlConfiguration. configure(WebAppContext context)Process web-default.xml, web.xml, override-web.xmlvoidWebInfConfiguration. configureTempDirectory(java.io.File dir, WebAppContext context)voidAbstractConfiguration. deconfigure(WebAppContext context)voidCloneConfiguration. deconfigure(WebAppContext context)voidConfiguration. deconfigure(WebAppContext context)DeConfigure WebApp.voidConfiguration.Wrapper. deconfigure(WebAppContext context)voidWebInfConfiguration. deconfigure(WebAppContext context)voidWebXmlConfiguration. deconfigure(WebAppContext context)voidAbstractConfiguration. destroy(WebAppContext context)voidConfiguration. destroy(WebAppContext context)Destroy WebApp.voidConfiguration.Wrapper. destroy(WebAppContext context)abstract voidIterativeDescriptorProcessor. end(WebAppContext context, Descriptor descriptor)voidStandardDescriptorProcessor. end(WebAppContext context, Descriptor descriptor)voidWebInfConfiguration. findAndFilterContainerPaths(WebAppContext context)Find jars and directories that are on the container's classpath and apply an optional filter.voidWebInfConfiguration. findAndFilterWebAppPaths(WebAppContext context)Finds the jars that are either physically or virtually in WEB-INF/lib, and applies an optional filter to their full pathnames.protected java.util.List<Resource>WebInfConfiguration. findClassDirs(WebAppContext context)protected java.util.List<Resource>WebInfConfiguration. findExtraClasspathDirs(WebAppContext context)Get class dirs from WebAppContext.getExtraClasspath as resourcesprotected java.util.List<Resource>WebInfConfiguration. findExtraClasspathJars(WebAppContext context)Get jars from WebAppContext.getExtraClasspath as resourcesprotected java.util.List<Resource>WebInfConfiguration. findJars(WebAppContext context)Look for jars that should be treated as if they are in WEB-INF/libvoidFragmentConfiguration. findWebFragments(WebAppContext context, MetaData metaData)Deprecated.protected ResourceWebInfConfiguration. findWebInfClassesDir(WebAppContext context)GetWEB-INF/classesdirprotected java.util.List<Resource>WebInfConfiguration. findWebInfLibJars(WebAppContext context)Look for jars inWEB-INF/libprotected ResourceWebXmlConfiguration. findWebXml(WebAppContext context)static java.lang.StringWebInfConfiguration. getCanonicalNameForWebAppTmpDir(WebAppContext context)Create a canonical name for a webapp temp directory.voidWebInfConfiguration. makeTempDirectory(java.io.File parent, WebAppContext context)voidAbstractConfiguration. postConfigure(WebAppContext context)voidConfiguration. postConfigure(WebAppContext context)Clear down after configuration.voidConfiguration.Wrapper. postConfigure(WebAppContext context)voidFragmentConfiguration. postConfigure(WebAppContext context)voidMetaInfConfiguration. postConfigure(WebAppContext context)voidAbstractConfiguration. preConfigure(WebAppContext context)voidConfiguration. preConfigure(WebAppContext context)Set up for configuration.voidConfiguration.Wrapper. preConfigure(WebAppContext context)voidFragmentConfiguration. preConfigure(WebAppContext context)voidMetaInfConfiguration. preConfigure(WebAppContext context)voidWebInfConfiguration. preConfigure(WebAppContext context)voidWebXmlConfiguration. preConfigure(WebAppContext context)voidDescriptorProcessor. process(WebAppContext context, Descriptor descriptor)voidIterativeDescriptorProcessor. process(WebAppContext context, Descriptor descriptor)voidMetaData. resolve(WebAppContext context)Resolve all servlet/filter/listener metadata from all sources: descriptors and annotations.voidWebInfConfiguration. resolveTempDirectory(WebAppContext context)Get a temporary directory in which to unpack the war etc etc.voidMetaInfConfiguration. scanForFragment(WebAppContext context, Resource jar, java.util.concurrent.ConcurrentHashMap<Resource,Resource> cache)Scan for META-INF/web-fragment.xml file in the given jar.voidMetaInfConfiguration. scanForResources(WebAppContext context, Resource target, java.util.concurrent.ConcurrentHashMap<Resource,Resource> cache)Scan for META-INF/resources dir in the given jar.voidMetaInfConfiguration. scanForTlds(WebAppContext context, Resource jar, java.util.concurrent.ConcurrentHashMap<Resource,java.util.Collection<java.net.URL>> cache)Discover META-INF/*.tld files in the given jarvoidMetaInfConfiguration. scanJars(WebAppContext context, java.util.Collection<Resource> jars, boolean useCaches)For backwards compatibility.voidMetaInfConfiguration. scanJars(WebAppContext context, java.util.Collection<Resource> jars, boolean useCaches, java.util.List<java.lang.String> scanTypes)Look into the jars to discover info in META-INF.abstract voidIterativeDescriptorProcessor. start(WebAppContext context, Descriptor descriptor)voidStandardDescriptorProcessor. start(WebAppContext context, Descriptor descriptor)voidWebInfConfiguration. unpack(WebAppContext context)protected voidIterativeDescriptorProcessor. visit(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitContextParam(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitDenyUncoveredHttpMethods(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Servlet spec 3.1.voidStandardDescriptorProcessor. visitDisplayName(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitDistributable(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitErrorPage(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitFilter(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitFilterMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitJspConfig(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitListener(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitLocaleEncodingList(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitLoginConfig(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitMimeMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitSecurityConstraint(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitSecurityRole(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitServlet(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitServletMapping(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitSessionConfig(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitTagLib(WebAppContext context, Descriptor descriptor, XmlParser.Node node)voidStandardDescriptorProcessor. visitWelcomeFileList(WebAppContext context, Descriptor descriptor, XmlParser.Node node)Constructors in org.eclipse.jetty.webapp with parameters of type WebAppContext Constructor Description ContainerPathNameMatcher(WebAppContext context, java.util.regex.Pattern pattern)DiscoveredAnnotation(WebAppContext context, java.lang.String className)DiscoveredAnnotation(WebAppContext context, java.lang.String className, Resource resource)WebAppPathNameMatcher(WebAppContext context, java.util.regex.Pattern pattern)
-