├── .gitignore ├── .idea ├── .name ├── codeStyleSettings.xml ├── copyright │ ├── Webx_License.xml │ └── profiles_settings.xml ├── dictionaries │ └── baobao.xml ├── encodings.xml ├── scopes │ ├── Webx_Codes.xml │ └── scope_settings.xml ├── uiDesigner.xml └── vcs.xml ├── CHANGES.txt ├── CHANGES_SINCE_3.1.0.txt ├── CHANGES_SINCE_3.2.0.txt ├── DEPLOY.txt ├── common ├── expr │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── expr │ │ │ ├── Expression.java │ │ │ ├── ExpressionContext.java │ │ │ ├── ExpressionFactory.java │ │ │ ├── ExpressionParseException.java │ │ │ ├── composite │ │ │ ├── CompositeExpression.java │ │ │ ├── CompositeExpressionFactory.java │ │ │ └── ConstantExpression.java │ │ │ ├── jexl │ │ │ ├── JexlExpression.java │ │ │ └── JexlExpressionFactory.java │ │ │ └── support │ │ │ ├── ExpressionSupport.java │ │ │ └── MappedExpressionContext.java │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── expr │ │ ├── CompositeExpressionTests.java │ │ └── JexlExpressionTests.java ├── generictype │ ├── docs │ │ ├── Supertypes.readme.txt │ │ ├── generic.png │ │ └── generic.zargo │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java.working │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── generictype │ │ │ │ └── introspect │ │ │ │ ├── IndexedPropertyInfo.java │ │ │ │ ├── IntrospectionException.java │ │ │ │ ├── Introspector.java │ │ │ │ ├── InvalidPropertyPathException.java │ │ │ │ ├── MappedPropertyInfo.java │ │ │ │ ├── PropertyEvaluationFailureException.java │ │ │ │ ├── PropertyException.java │ │ │ │ ├── PropertyInfo.java │ │ │ │ ├── PropertyPath.java │ │ │ │ ├── PropertyUtil.java │ │ │ │ ├── SimplePropertyInfo.java │ │ │ │ ├── impl │ │ │ │ ├── AbstractPropertiesFinder.java │ │ │ │ ├── AbstractPropertyInfo.java │ │ │ │ ├── AbstractTypeVisitor.java │ │ │ │ ├── ArrayPropertiesFinder.java │ │ │ │ ├── IndexedPropertiesFinder.java │ │ │ │ ├── IntrospectorImpl.java │ │ │ │ ├── MapPropertiesFinder.java │ │ │ │ ├── MappedPropertiesFinder.java │ │ │ │ ├── PropertiesFinder.java │ │ │ │ ├── SimplePropertiesFinder.java │ │ │ │ ├── SinglePropertyFinder.java │ │ │ │ └── TypeVisitor.java │ │ │ │ └── package.html │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── generictype │ │ │ ├── ArrayTypeInfo.java │ │ │ ├── BoundedTypeInfo.java │ │ │ ├── ClassTypeInfo.java │ │ │ ├── FieldInfo.java │ │ │ ├── FieldNotFoundException.java │ │ │ ├── GenericDeclarationInfo.java │ │ │ ├── MethodInfo.java │ │ │ ├── MethodNotFoundException.java │ │ │ ├── ParameterizedTypeInfo.java │ │ │ ├── RawTypeInfo.java │ │ │ ├── TypeInfo.java │ │ │ ├── TypeInfoUtil.java │ │ │ ├── TypeVariableInfo.java │ │ │ ├── WildcardTypeInfo.java │ │ │ ├── codegen │ │ │ ├── CodegenConstant.java │ │ │ ├── MethodSignature.java │ │ │ ├── TypeUtil.java │ │ │ └── asm │ │ │ │ ├── Method.java │ │ │ │ ├── Opcodes.java │ │ │ │ └── Type.java │ │ │ ├── impl │ │ │ ├── AbstractBoundedTypeInfo.java │ │ │ ├── AbstractGenericDeclarationInfo.java │ │ │ ├── ArrayTypeImpl.java │ │ │ ├── FieldImpl.java │ │ │ ├── MethodImpl.java │ │ │ ├── ParameterizedTypeImpl.java │ │ │ ├── RawTypeImpl.java │ │ │ ├── TypeInfoFactory.java │ │ │ ├── TypeVariableImpl.java │ │ │ ├── UnknownWildcardTypeImpl.java │ │ │ └── WildcardTypeImpl.java │ │ │ └── package.html │ │ └── test │ │ ├── java.working │ │ ├── ClassUtil.java │ │ ├── Main.java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── generictype │ │ │ ├── AbstractPropertiesAnalyzerTests.java │ │ │ ├── ArrayAnalyzerTests.java │ │ │ ├── IndexedPropertiesAnalyzerTests.java │ │ │ ├── MappedPropertiesAnalyzerTests.java │ │ │ ├── PropertyEvaluationTests.java │ │ │ ├── SimplePropertiesAnalyzerTests.java │ │ │ └── introspect │ │ │ └── PropertyPathTests.java │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── generictype │ │ ├── ArrayTypeTests.java │ │ ├── BaseTypeTests.java │ │ ├── FieldTests.java │ │ ├── MethodTests.java │ │ ├── ParameterizedTypeTests.java │ │ ├── RawTypeTests.java │ │ ├── TypeInfoFactoryTests.java │ │ ├── TypeInfoUtilTests.java │ │ ├── TypeVariableTests.java │ │ ├── WildcardTypeTests.java │ │ └── demo │ │ ├── dao │ │ ├── DaoTest.java │ │ ├── DataObject.java │ │ ├── GenericDao.java │ │ ├── Person.java │ │ └── PersonDao.java │ │ └── simple │ │ └── GenericTest.java ├── hessian │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ ├── burlap │ │ │ └── io │ │ │ │ └── BurlapRemoteObject.java │ │ │ └── hessian │ │ │ ├── HessianException.java │ │ │ ├── io │ │ │ ├── AbstractDeserializer.java │ │ │ ├── AbstractHessianInput.java │ │ │ ├── AbstractHessianOutput.java │ │ │ ├── AbstractHessianResolver.java │ │ │ ├── AbstractListDeserializer.java │ │ │ ├── AbstractMapDeserializer.java │ │ │ ├── AbstractSerializer.java │ │ │ ├── AbstractSerializerFactory.java │ │ │ ├── AbstractStreamDeserializer.java │ │ │ ├── AbstractStreamSerializer.java │ │ │ ├── AbstractStringValueDeserializer.java │ │ │ ├── AnnotationDeserializer.java │ │ │ ├── AnnotationInvocationHandler.java │ │ │ ├── AnnotationSerializer.java │ │ │ ├── ArrayDeserializer.java │ │ │ ├── ArraySerializer.java │ │ │ ├── BasicDeserializer.java │ │ │ ├── BasicSerializer.java │ │ │ ├── BeanDeserializer.java │ │ │ ├── BeanSerializer.java │ │ │ ├── BeanSerializerFactory.java │ │ │ ├── BigDecimalDeserializer.java │ │ │ ├── ByteHandle.java │ │ │ ├── CalendarHandle.java │ │ │ ├── CalendarSerializer.java │ │ │ ├── ClassDeserializer.java │ │ │ ├── ClassSerializer.java │ │ │ ├── CollectionDeserializer.java │ │ │ ├── CollectionSerializer.java │ │ │ ├── ContextSerializerFactory.java │ │ │ ├── Deflation.java │ │ │ ├── Deserializer.java │ │ │ ├── EnumDeserializer.java │ │ │ ├── EnumSerializer.java │ │ │ ├── EnumerationDeserializer.java │ │ │ ├── EnumerationSerializer.java │ │ │ ├── EnvelopeFactory.java │ │ │ ├── ExtSerializerFactory.java │ │ │ ├── FileDeserializer.java │ │ │ ├── FloatHandle.java │ │ │ ├── Hessian2Constants.java │ │ │ ├── Hessian2Input.java │ │ │ ├── Hessian2Output.java │ │ │ ├── Hessian2StreamingInput.java │ │ │ ├── Hessian2StreamingOutput.java │ │ │ ├── HessianDebugInputStream.java │ │ │ ├── HessianDebugOutputStream.java │ │ │ ├── HessianDebugState.java │ │ │ ├── HessianEnvelope.java │ │ │ ├── HessianFactory.java │ │ │ ├── HessianFieldException.java │ │ │ ├── HessianHandle.java │ │ │ ├── HessianInput.java │ │ │ ├── HessianInputFactory.java │ │ │ ├── HessianMethodSerializationException.java │ │ │ ├── HessianOutput.java │ │ │ ├── HessianProtocolException.java │ │ │ ├── HessianRemote.java │ │ │ ├── HessianRemoteObject.java │ │ │ ├── HessianRemoteResolver.java │ │ │ ├── HessianSerializerInput.java │ │ │ ├── HessianSerializerOutput.java │ │ │ ├── HessianServiceException.java │ │ │ ├── IOExceptionWrapper.java │ │ │ ├── InputStreamDeserializer.java │ │ │ ├── InputStreamSerializer.java │ │ │ ├── IteratorSerializer.java │ │ │ ├── JavaDeserializer.java │ │ │ ├── JavaSerializer.java │ │ │ ├── LocaleHandle.java │ │ │ ├── LocaleSerializer.java │ │ │ ├── MapDeserializer.java │ │ │ ├── MapSerializer.java │ │ │ ├── ObjectDeserializer.java │ │ │ ├── ObjectHandleSerializer.java │ │ │ ├── ObjectNameDeserializer.java │ │ │ ├── ObjectSerializer.java │ │ │ ├── RemoteDeserializer.java │ │ │ ├── RemoteSerializer.java │ │ │ ├── Serializer.java │ │ │ ├── SerializerFactory.java │ │ │ ├── ShortHandle.java │ │ │ ├── SqlDateDeserializer.java │ │ │ ├── SqlDateSerializer.java │ │ │ ├── StackTraceElementDeserializer.java │ │ │ ├── StringValueDeserializer.java │ │ │ ├── StringValueSerializer.java │ │ │ ├── ThrowableSerializer.java │ │ │ ├── UnsafeDeserializer.java │ │ │ ├── UnsafeSerializer.java │ │ │ ├── ValueDeserializer.java │ │ │ └── WriteReplaceSerializer.java │ │ │ └── util │ │ │ ├── HessianFreeList.java │ │ │ ├── IdentityIntMap.java │ │ │ └── IntMap.java │ │ └── resources │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── hessian │ │ ├── hessian.license │ │ └── hessian.version ├── logconfig │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── logconfig │ │ │ │ ├── LogConfigurator.java │ │ │ │ ├── LogConfiguratorListener.java │ │ │ │ ├── log4j │ │ │ │ ├── DOMConfigurator.java │ │ │ │ └── Log4jConfigurator.java │ │ │ │ ├── logback │ │ │ │ ├── LevelRangeFilter.java │ │ │ │ └── LogbackConfigurator.java │ │ │ │ └── support │ │ │ │ ├── ConfigurableLogger.java │ │ │ │ └── SecurityLogger.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── logconfig.providers │ │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── logconfig │ │ │ ├── log4j │ │ │ ├── log4j-default.xml │ │ │ └── log4j.dtd │ │ │ └── logback │ │ │ └── logback-default.xml │ │ └── test │ │ ├── config │ │ └── WEB-INF │ │ │ ├── web.xml │ │ │ └── web2.xml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── logconfig │ │ │ ├── AbstractLogConfiguratorListenerTests.java │ │ │ ├── AbstractLogConfiguratorTests.java │ │ │ ├── Log4jConfiguratorTests.java │ │ │ ├── LogConfiguratorListenerMultiLogSystemsTests.java │ │ │ ├── LogConfiguratorListenerTests.java │ │ │ ├── LogConfiguratorTests.java │ │ │ ├── LogbackConfiguratorTests.java │ │ │ ├── spi │ │ │ ├── AbstractLogConfigurator.java │ │ │ └── MyLogConfigurator.java │ │ │ └── support │ │ │ ├── ConfigurableLoggerTests.java │ │ │ └── SecurityLoggerTests.java │ │ └── resources │ │ ├── META-INF │ │ ├── logconfig.providers │ │ ├── my-log4j.xml │ │ └── my-logback.xml │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── logconfig │ │ └── spi │ │ └── ok-default.xml ├── servlet │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── javax │ │ └── servlet │ │ └── WriteListener.java ├── springext │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── springext │ │ │ │ ├── ConfigurationPoint.java │ │ │ │ ├── ConfigurationPointException.java │ │ │ │ ├── ConfigurationPoints.java │ │ │ │ ├── Contribution.java │ │ │ │ ├── ContributionAware.java │ │ │ │ ├── ContributionType.java │ │ │ │ ├── Namespaces.java │ │ │ │ ├── ResourceLoadingExtendable.java │ │ │ │ ├── ResourceLoadingExtender.java │ │ │ │ ├── ResourceResolver.java │ │ │ │ ├── Schema.java │ │ │ │ ├── Schemas.java │ │ │ │ ├── SourceInfo.java │ │ │ │ ├── VersionableSchemas.java │ │ │ │ ├── export │ │ │ │ ├── SchemaExporter.java │ │ │ │ ├── SchemaExporterCLI.java │ │ │ │ ├── SchemaExporterServlet.java │ │ │ │ └── SchemaExporterWEB.java │ │ │ │ ├── impl │ │ │ │ ├── ConfigurationPointImpl.java │ │ │ │ ├── ConfigurationPointSettings.java │ │ │ │ ├── ConfigurationPointsImpl.java │ │ │ │ ├── ContributionImpl.java │ │ │ │ ├── ContributionKey.java │ │ │ │ ├── SchemaBase.java │ │ │ │ ├── SchemaImpl.java │ │ │ │ ├── SpringPluggableSchemas.java │ │ │ │ └── VersionableSchemasImpl.java │ │ │ │ ├── support │ │ │ │ ├── BeanSupport.java │ │ │ │ ├── ClasspathResourceResolver.java │ │ │ │ ├── ConfigurationPointSchemaSourceInfo.java │ │ │ │ ├── ConfigurationPointSourceInfo.java │ │ │ │ ├── ContributionSchemaSourceInfo.java │ │ │ │ ├── ContributionSourceInfo.java │ │ │ │ ├── GenericBeanSupport.java │ │ │ │ ├── SchemaSet.java │ │ │ │ ├── SchemaUtil.java │ │ │ │ ├── SourceInfoSupport.java │ │ │ │ ├── SpringExtSchemaSet.java │ │ │ │ ├── SpringPluggableSchemaSourceInfo.java │ │ │ │ ├── SpringSchemasSourceInfo.java │ │ │ │ ├── context │ │ │ │ │ ├── AbstractXmlApplicationContext.java │ │ │ │ │ ├── GetApplicationListeners.java │ │ │ │ │ ├── InheritableListableBeanFactory.java │ │ │ │ │ ├── XmlApplicationContext.java │ │ │ │ │ ├── XmlBeanFactory.java │ │ │ │ │ └── XmlWebApplicationContext.java │ │ │ │ ├── parser │ │ │ │ │ ├── AbstractNamedBeanDefinitionParser.java │ │ │ │ │ ├── AbstractNamedProxyBeanDefinitionParser.java │ │ │ │ │ ├── AbstractSingleBeanDefinitionParser.java │ │ │ │ │ ├── DefaultElementDefinitionParser.java │ │ │ │ │ └── NamedBeanDefinitionParserMixin.java │ │ │ │ └── resolver │ │ │ │ │ ├── ConfigurationPointNamespaceHandlerResolver.java │ │ │ │ │ ├── SchemaEntityResolver.java │ │ │ │ │ └── XmlBeanDefinitionReaderProcessor.java │ │ │ │ └── util │ │ │ │ ├── ClassCompatibilityAssert.java │ │ │ │ ├── ConvertToUnqualifiedStyle.java │ │ │ │ ├── DomUtil.java │ │ │ │ ├── ProxyTargetFactory.java │ │ │ │ └── SpringExtUtil.java │ │ └── resources │ │ │ ├── META-INF │ │ │ ├── spring.schemas │ │ │ ├── springext │ │ │ │ └── springext-base.xsd │ │ │ └── web-springext-helper.xml │ │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── springext │ │ │ └── export │ │ │ ├── close.gif │ │ │ ├── dir.gif │ │ │ ├── file.gif │ │ │ ├── list.htm │ │ │ ├── na.gif │ │ │ ├── open.gif │ │ │ ├── schema-exporter.js │ │ │ ├── styles-ie.css │ │ │ └── styles.css │ │ └── test │ │ ├── config │ │ ├── WEB-INF │ │ │ ├── web.xml │ │ │ └── web_withRedirect.xml │ │ ├── beans-autowire-parent.xml │ │ ├── beans-autowire.xml │ │ ├── beans-decorators.xml │ │ ├── beans-default-values.xml │ │ ├── beans.xml │ │ ├── my-beans-no-default-name.xml │ │ ├── my-beans.xml │ │ ├── schema │ │ │ ├── a.xsd │ │ │ ├── all.xsd │ │ │ ├── b.xsd │ │ │ ├── ns.xsd │ │ │ ├── x.xsd │ │ │ ├── y.xsd │ │ │ └── z.xsd │ │ ├── services.xml │ │ └── test-import-each-other.xml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── springext │ │ │ ├── contrib │ │ │ ├── ContainerServiceBeanDefinitionParser.java │ │ │ ├── MyBeanDefinitionDecorator.java │ │ │ ├── MyBeanDefinitionDecorator2.java │ │ │ ├── MyBeanDefinitionParser.java │ │ │ ├── MyBeanDefinitionParser2.java │ │ │ ├── SimpleDateFormatBeanDefinitionParser.java │ │ │ ├── deco │ │ │ │ ├── MyDecoratableClass.java │ │ │ │ └── MyDecorator.java │ │ │ └── simple │ │ │ │ ├── Base.java │ │ │ │ ├── Test1.java │ │ │ │ ├── Test2.java │ │ │ │ ├── Test3.java │ │ │ │ └── Test4.java │ │ │ ├── export │ │ │ ├── SchemaExporterCLITests.java │ │ │ ├── SchemaExporterTests.java │ │ │ └── SchemaExporterWEBTests.java │ │ │ ├── impl │ │ │ ├── ConfigurationPointTests.java │ │ │ ├── ConfigurationPointsTests.java │ │ │ ├── ContributionDecoratorTests.java │ │ │ ├── ContributionKeyTests.java │ │ │ ├── ContributionTests.java │ │ │ ├── SchemaBaseTests.java │ │ │ ├── SchemasTests.java │ │ │ ├── SpringPluggableSchemaTests.java │ │ │ └── UnqualifiedStyleTests.java │ │ │ ├── support │ │ │ ├── BeanSupportTests.java │ │ │ ├── SchemaSetTests.java │ │ │ ├── SourceInfoSupportTests.java │ │ │ ├── SpringExtSchemaSetTests.java │ │ │ ├── context │ │ │ │ ├── AbstractBeanFactoryTests.java │ │ │ │ ├── InheritableBeanFactoryTests.java │ │ │ │ ├── MyClass.java │ │ │ │ ├── MyResourceLoadingExtender.java │ │ │ │ ├── MyResourceLoadingExtender2.java │ │ │ │ ├── ResourceLoadingExtendableTests.java │ │ │ │ ├── XmlApplicationContextTests.java │ │ │ │ ├── XmlBeanFactoryTests.java │ │ │ │ └── XmlWebApplicationContextTests.java │ │ │ ├── parser │ │ │ │ ├── MyBean.java │ │ │ │ ├── MyBeanDefinitionParser.java │ │ │ │ ├── MyBeanDefinitionParserNoDefaultName.java │ │ │ │ └── NamedBeanDefinitionParserTests.java │ │ │ └── resolver │ │ │ │ ├── EntityResolverTests.java │ │ │ │ ├── NamespaceHandlerResolverTests.java │ │ │ │ ├── SchemaTypeTests.java │ │ │ │ └── SkipValidationDefaultValueTests.java │ │ │ └── util │ │ │ ├── DomUtilTests.java │ │ │ ├── SpringExtUtilTests.java │ │ │ └── SpringExtUtil_ProxyTests.java │ │ └── resources │ │ ├── META-INF │ │ ├── included-schema.xsd │ │ ├── my-cp1.bean-definition-parsers │ │ ├── my-cp2.bean-definition-parsers │ │ ├── my │ │ │ ├── cp1 │ │ │ │ ├── test1.xsd │ │ │ │ └── test2.xsd │ │ │ └── cp2 │ │ │ │ ├── test3.xsd │ │ │ │ └── test4.xsd │ │ ├── services-tools.bean-definition-parsers │ │ ├── services.bean-definition-decorators │ │ ├── services.bean-definition-decorators-for-attribute │ │ ├── services.bean-definition-parsers │ │ ├── services │ │ │ ├── container.xsd │ │ │ ├── my-bean-no-default-name.xsd │ │ │ ├── my-bean.xsd │ │ │ ├── my-deco.xsd │ │ │ └── tools │ │ │ │ └── dateformat.xsd │ │ ├── spring.configuration-points │ │ ├── spring.schemas │ │ ├── spring.tooling │ │ ├── springext-base-types.xsd │ │ └── transports │ │ │ └── http │ │ │ ├── configuration │ │ │ └── http-conf.xsd │ │ │ └── wsdl │ │ │ └── http-conf.xsd │ │ ├── TEST-INF │ │ ├── test1 │ │ │ └── cps │ │ ├── test10 │ │ │ ├── cp1.bean-definition-parsers │ │ │ ├── cps │ │ │ └── cps2 │ │ ├── test11 │ │ │ ├── cps1 │ │ │ ├── cps2 │ │ │ └── cps3 │ │ ├── test12 │ │ │ ├── cps │ │ │ ├── my-services.bean-definition-decorators │ │ │ ├── my-services.bean-definition-parsers │ │ │ └── my │ │ │ │ └── services │ │ │ │ ├── myservice-abc-1.0.xsd │ │ │ │ ├── myservice-abc-xyz-2.0.xsd │ │ │ │ ├── myservice-abc-xyz.xsd │ │ │ │ └── myservice.xsd │ │ ├── test13 │ │ │ ├── cps │ │ │ ├── my-services-service1-plugins.bean-definition-parsers │ │ │ ├── my-services.bean-definition-parsers │ │ │ └── my │ │ │ │ └── services │ │ │ │ ├── service1.xsd │ │ │ │ └── service1 │ │ │ │ └── plugins │ │ │ │ └── plugin1.xsd │ │ ├── test14 │ │ │ ├── a.bean-definition-parsers │ │ │ ├── a │ │ │ │ └── a1.xsd │ │ │ ├── b.bean-definition-parsers │ │ │ ├── b │ │ │ │ └── b1.xsd │ │ │ ├── c.bean-definition-parsers │ │ │ ├── c │ │ │ │ └── c1.xsd │ │ │ ├── cps │ │ │ ├── d.bean-definition-parsers │ │ │ ├── d │ │ │ │ └── d1.xsd │ │ │ ├── e.bean-definition-parsers │ │ │ ├── e │ │ │ │ └── e1.xsd │ │ │ ├── f.bean-definition-parsers │ │ │ ├── f │ │ │ │ ├── f1.xsd │ │ │ │ └── f2.xsd │ │ │ ├── g.bean-definition-parsers │ │ │ ├── g │ │ │ │ └── g1.xsd │ │ │ ├── h.bean-definition-parsers │ │ │ └── h │ │ │ │ └── h1.xsd │ │ ├── test15 │ │ │ ├── cps │ │ │ ├── interceptors.bean-definition-parsers │ │ │ ├── interceptors │ │ │ │ ├── i1.xsd │ │ │ │ └── i2.xsd │ │ │ ├── services.bean-definition-parsers │ │ │ └── services │ │ │ │ ├── s1.xsd │ │ │ │ ├── s2.xsd │ │ │ │ └── s3.xsd │ │ ├── test2 │ │ │ ├── cp1.bean-definition-decorators │ │ │ ├── cp1.bean-definition-decorators-for-attribute │ │ │ ├── cp1.bean-definition-parsers │ │ │ └── cps │ │ ├── test6 │ │ │ ├── cp1.bean-definition-decorators │ │ │ ├── cp1.bean-definition-decorators-for-attribute │ │ │ ├── cp1.bean-definition-parsers │ │ │ └── cps │ │ ├── test7 │ │ │ ├── cps │ │ │ ├── dir-cp1.bean-definition-decorators │ │ │ ├── dir-cp1.bean-definition-decorators-for-attribute │ │ │ └── dir-cp1.bean-definition-parsers │ │ ├── test8 │ │ │ └── cps │ │ └── test9 │ │ │ ├── cps │ │ │ ├── my-plugins.bean-definition-parsers │ │ │ ├── my-services.bean-definition-parsers │ │ │ └── my │ │ │ ├── plugins │ │ │ └── plugin1.xsd │ │ │ └── services │ │ │ ├── service1-1.0.xsd │ │ │ ├── service1.xsd │ │ │ ├── service2-2.0.xsd │ │ │ ├── service2.xsd │ │ │ └── service3.xsd │ │ └── dummy.txt └── util │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── util │ │ │ ├── ArrayUtil.java │ │ │ ├── Assert.java │ │ │ ├── BasicConstant.java │ │ │ ├── ClassInstantiationException.java │ │ │ ├── ClassLoaderUtil.java │ │ │ ├── ClassUtil.java │ │ │ ├── CollectionUtil.java │ │ │ ├── ExceptionUtil.java │ │ │ ├── FileUtil.java │ │ │ ├── HumanReadableSize.java │ │ │ ├── HumanReadableSizeEditor.java │ │ │ ├── IllegalPathException.java │ │ │ ├── MessageUtil.java │ │ │ ├── ObjectUtil.java │ │ │ ├── Paginator.java │ │ │ ├── ServiceNotFoundException.java │ │ │ ├── ServletUtil.java │ │ │ ├── StringEscapeUtil.java │ │ │ ├── StringUtil.java │ │ │ ├── SystemUtil.java │ │ │ ├── ToStringBuilder.java │ │ │ ├── UUID.java │ │ │ ├── UnexpectedFailureException.java │ │ │ ├── UnreachableCodeException.java │ │ │ ├── Utils.java │ │ │ ├── collection │ │ │ ├── ArrayHashMap.java │ │ │ ├── ArrayHashSet.java │ │ │ ├── DefaultHashMap.java │ │ │ ├── DefaultMapEntry.java │ │ │ ├── IntHashMap.java │ │ │ └── ListMap.java │ │ │ ├── i18n │ │ │ ├── CharConvertReader.java │ │ │ ├── CharConvertWriter.java │ │ │ ├── CharConverter.java │ │ │ ├── CharConverterProvider.java │ │ │ ├── LocaleInfo.java │ │ │ ├── LocaleUtil.java │ │ │ └── provider │ │ │ │ ├── ChineseCharConverterProvider.java │ │ │ │ ├── SimplifiedToTraditionalChineseProvider.java │ │ │ │ └── TraditionalToSimplifiedChineseProvider.java │ │ │ ├── internal │ │ │ ├── ActionEventUtil.java │ │ │ ├── DynamicClassBuilder.java │ │ │ ├── Entities.java │ │ │ ├── IndentableStringBuilder.java │ │ │ ├── InterfaceImplementorBuilder.java │ │ │ ├── LazyLoader.java │ │ │ ├── MessageFormatter.java │ │ │ ├── ScreenEventUtil.java │ │ │ ├── Servlet3Util.java │ │ │ ├── StaticFunctionDelegatorBuilder.java │ │ │ ├── apache │ │ │ │ └── lang │ │ │ │ │ ├── EqualsBuilder.java │ │ │ │ │ └── HashCodeBuilder.java │ │ │ ├── impl │ │ │ │ └── CitrusMessageFormatter.java │ │ │ └── webpagelite │ │ │ │ ├── PageComponent.java │ │ │ │ ├── PageComponentRegistry.java │ │ │ │ ├── RequestContext.java │ │ │ │ ├── RequestProcessor.java │ │ │ │ └── ServletRequestContext.java │ │ │ ├── io │ │ │ ├── ByteArray.java │ │ │ ├── ByteArrayInputStream.java │ │ │ ├── ByteArrayOutputStream.java │ │ │ ├── InputStreamOutputEngine.java │ │ │ ├── OutputEngine.java │ │ │ ├── OutputEngineInputStream.java │ │ │ ├── ReaderOutputEngine.java │ │ │ └── StreamUtil.java │ │ │ ├── regex │ │ │ ├── ClassNameWildcardCompiler.java │ │ │ ├── MatchResultSubstitution.java │ │ │ ├── PathNameWildcardCompiler.java │ │ │ └── Substitution.java │ │ │ └── templatelite │ │ │ ├── FallbackTextWriter.java │ │ │ ├── FallbackToVisitor.java │ │ │ ├── FallbackVisitor.java │ │ │ ├── Template.java │ │ │ ├── TemplateException.java │ │ │ ├── TemplateParseException.java │ │ │ ├── TemplateRuntimeException.java │ │ │ ├── TextWriter.java │ │ │ └── VisitorInvocationErrorHandler.java │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ ├── char.converter.SimplifiedToTraditionalChinese │ │ │ └── char.converter.TraditionalToSimplifiedChinese │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── util │ │ ├── i18n │ │ └── provider │ │ │ ├── SimplifiedToTraditionalChinese.ctable │ │ │ └── TraditionalToSimplifiedChinese.ctable │ │ └── internal │ │ └── webpagelite │ │ ├── builder.js │ │ ├── controls.js │ │ ├── dragdrop.js │ │ ├── effects.js │ │ ├── prototype.js │ │ ├── scriptaculous.js │ │ ├── slider.js │ │ ├── sound.js │ │ └── unittest.js │ └── test │ ├── config │ └── templates │ │ ├── inc │ │ └── def.txt │ │ ├── test01_text_simple.txt │ │ ├── test02_placeholder_simple.txt │ │ ├── test02_placeholder_template.txt │ │ ├── test02_placeholder_template_group.txt │ │ ├── test02_placeholder_template_group_2.txt │ │ ├── test03_subtemplate_simple.txt │ │ ├── test04_include_template_override.txt │ │ ├── test04_include_template_simple.txt │ │ ├── test04_include_template_sub.txt │ │ ├── test05_param_gbk.txt │ │ ├── test05_param_override.txt │ │ ├── test05_param_utf8.txt │ │ ├── test06_real_case.txt │ │ ├── test06_real_case_2.txt │ │ ├── test07_predefined_templates.txt │ │ ├── test07_reload_1.txt │ │ ├── test07_reload_2.txt │ │ ├── test07_reload_import.txt │ │ ├── test08_import.txt │ │ └── test08_import_notfound.txt │ ├── java │ └── com │ │ └── alibaba │ │ ├── WrongPrefixMessages.java │ │ └── citrus │ │ └── util │ │ ├── ArrayUtilTests.java │ │ ├── AssertTests.java │ │ ├── BasicConstantTests.java │ │ ├── ClassLoaderUtilTests.java │ │ ├── ClassUtilTests.java │ │ ├── CollectionUtilTests.java │ │ ├── ExceptionUtilTests.java │ │ ├── FileUtilTests.java │ │ ├── HumanReadableSizeTests.java │ │ ├── MessageUtilTests.java │ │ ├── MyErrorService.java │ │ ├── MyService.java │ │ ├── ObjectUtilTests.java │ │ ├── PaginatorTests.java │ │ ├── ServletUtilTests.java │ │ ├── StringEscapeUtilTests.java │ │ ├── StringUtilTests.java │ │ ├── SystemUtilTests.java │ │ ├── ToStringBuilderTests.java │ │ ├── UUIDTests.java │ │ ├── UtilsTests.java │ │ ├── collection │ │ ├── AbstractListMapTests.java │ │ ├── AbstractListMapViewTests.java │ │ ├── AbstractMapTests.java │ │ ├── AbstractMapViewTests.java │ │ ├── AbstractTests.java │ │ ├── ArrayHashMapTests.java │ │ ├── ArrayHashSetTests.java │ │ ├── DefaultHashMapTests.java │ │ ├── DefaultMapEntryTests.java │ │ └── IntHashMapTests.java │ │ ├── i18n │ │ ├── CharConverterTests.java │ │ ├── LocaleInfoTests.java │ │ ├── LocaleUtilTests.java │ │ ├── UnknownCharsetTests.java │ │ └── tool │ │ │ ├── CharsetComparator.java │ │ │ ├── CharsetDumper.java │ │ │ ├── CharsetLoader.java │ │ │ ├── CharsetTool.java │ │ │ └── CodeTableMaker.java │ │ ├── internal │ │ ├── AbstractNormalizableStringBuilderTests.java │ │ ├── ActionEventUtilTests.java │ │ ├── EntitiesTests.java │ │ ├── IndentableStringBuilderTests.java │ │ ├── InterfaceImplementorBuilderTests.java │ │ ├── LazyLoaderTests.java │ │ ├── MessageFormatterTests.java │ │ ├── MyMessages.java │ │ ├── NormalizableStringBuilderTests.java │ │ ├── ScreenEventUtilTests.java │ │ ├── Servlet3UtilTests.java │ │ ├── StaticFunctionDelegatorBuilderTests.java │ │ ├── apache │ │ │ └── lang │ │ │ │ ├── EqualsBuilderTests.java │ │ │ │ └── HashCodeBuilderTests.java │ │ ├── impl │ │ │ └── CitrusMessageFormatterTests.java │ │ └── webpagelite │ │ │ ├── AbstractRequestProcessorTests.java │ │ │ ├── PageComponentTests.java │ │ │ ├── myprocessor │ │ │ ├── LastModifiedTests.java │ │ │ └── RequestProcessorTests.java │ │ │ └── simple │ │ │ └── SimpleComponent.java │ │ ├── io │ │ ├── ByteArrayInputStreamTests.java │ │ ├── ByteArrayOutputStreamTests.java │ │ ├── ByteArrayTests.java │ │ ├── OutputEngineTests.java │ │ └── StreamUtilTests.java │ │ ├── regex │ │ ├── RegexpStressTests.java │ │ ├── SubstitutionTests.java │ │ └── WildcardCompilerTests.java │ │ └── templatelite │ │ ├── AbstractTemplateTests.java │ │ ├── TemplateInputSourceTests.java │ │ ├── TemplateParserTests.java │ │ ├── TemplateTests.java │ │ └── TemplateVisitTests.java │ └── resources │ ├── META-INF │ └── services │ │ ├── localeNotifiers │ │ ├── myservice │ │ ├── myservice.err │ │ └── myservice.notfound │ └── com │ └── alibaba │ └── citrus │ ├── messages │ └── util_internal_impl_CitrusMessageFormatterTests$MyCitrus.properties │ └── util │ ├── MessageUtilTests.properties │ └── internal │ ├── MyMessages.properties │ ├── MyMessages_zh_CN.properties │ └── webpagelite │ ├── dummy2.txt │ ├── myprocessor │ ├── dummy.txt │ └── style.txt.tpl │ └── simple │ ├── simple.css │ ├── simple.htm │ └── test.gif ├── dist ├── springext │ └── pom.xml ├── test │ └── pom.xml └── webx │ └── pom.xml ├── pom.xml ├── resources ├── logo_webx.psd └── logo_webx_110_80.png ├── service ├── base │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── AbstractService.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring.configuration-points │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── BaseServiceTests.java ├── configuration │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── configuration │ │ │ │ ├── Configuration.java │ │ │ │ ├── ProductionModeAware.java │ │ │ │ ├── impl │ │ │ │ ├── PropertyEditorRegistrarsDefinitionParser.java │ │ │ │ ├── PropertyPlaceholderConfigurerDefinitionParser.java │ │ │ │ ├── SimpleConfigurationDefinitionParser.java │ │ │ │ └── SimpleConfigurationImpl.java │ │ │ │ └── support │ │ │ │ ├── AbstractConfigurationDefinitionParser.java │ │ │ │ ├── CustomDateRegistrar.java │ │ │ │ ├── ProductionModeAwarePostProcessor.java │ │ │ │ ├── PropertiesConfigurationSupport.java │ │ │ │ ├── PropertyEditorRegistrarsSupport.java │ │ │ │ └── PropertyPlaceholderConfigurer.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services.bean-definition-parsers │ │ │ └── services │ │ │ ├── property-editor-registrars.xsd │ │ │ ├── property-placeholder.xsd │ │ │ └── simple-configuration.xsd │ │ └── test │ │ ├── config │ │ ├── my-configuration-global.xml │ │ ├── my-configuration-wrong.xml │ │ ├── my-configuration.xml │ │ ├── property-placeholder-1.xml │ │ ├── property-placeholder-2.xml │ │ ├── property-placeholder-3.xml │ │ ├── property-placeholder-4.xml │ │ ├── property-placeholder-5.xml │ │ ├── property-placeholder-6.xml │ │ ├── property-placeholder-7.xml │ │ ├── property-placeholder.xml │ │ ├── registrars.xml │ │ ├── simple-configuration-skip-validation.xml │ │ └── simple-configuration.xml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── configuration │ │ │ ├── MyBean.java │ │ │ ├── MyBean1.java │ │ │ ├── MyBean2.java │ │ │ ├── MyBean3.java │ │ │ ├── MyConfiguration.java │ │ │ ├── MyConfigurationTests.java │ │ │ ├── PropertyEditorRegistrarsTests.java │ │ │ ├── PropertyPlaceholderSkipValidationTests.java │ │ │ ├── PropertyPlaceholderTests.java │ │ │ ├── SimpleConfigurationSkipValidationTests.java │ │ │ ├── SimpleConfigurationTests.java │ │ │ └── impl │ │ │ ├── MyConfigurationDefinitionParser.java │ │ │ └── MyConfigurationImpl.java │ │ └── resources │ │ ├── META-INF │ │ ├── services.bean-definition-parsers │ │ └── services │ │ │ └── my-configuration.xsd │ │ ├── test1.props │ │ ├── test2.props │ │ └── test3.props ├── dataresolver │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── dataresolver │ │ │ │ ├── DataResolver.java │ │ │ │ ├── DataResolverContext.java │ │ │ │ ├── DataResolverException.java │ │ │ │ ├── DataResolverFactory.java │ │ │ │ ├── DataResolverNotFoundException.java │ │ │ │ ├── DataResolverService.java │ │ │ │ └── impl │ │ │ │ ├── DataResolverServiceDefinitionParser.java │ │ │ │ └── DataResolverServiceImpl.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ └── data-resolver.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ └── services.xml │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── dataresolver │ │ ├── AbstractDataResolverTests.java │ │ ├── DataResolverContextTests.java │ │ ├── DataResolverServiceTests.java │ │ └── data │ │ ├── Action.java │ │ ├── ContextAwareResolver.java │ │ ├── DerivedAction.java │ │ ├── MapResolverFactory.java │ │ ├── Param.java │ │ └── RequestResolverFactory.java ├── form │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── form │ │ │ │ ├── Condition.java │ │ │ │ ├── CustomErrorNotFoundException.java │ │ │ │ ├── CustomErrors.java │ │ │ │ ├── Field.java │ │ │ │ ├── Form.java │ │ │ │ ├── FormConstant.java │ │ │ │ ├── FormService.java │ │ │ │ ├── FormServiceException.java │ │ │ │ ├── Group.java │ │ │ │ ├── InvalidGroupStateException.java │ │ │ │ ├── MessageContext.java │ │ │ │ ├── Validator.java │ │ │ │ ├── configuration │ │ │ │ ├── FieldConfig.java │ │ │ │ ├── FormConfig.java │ │ │ │ └── GroupConfig.java │ │ │ │ ├── impl │ │ │ │ ├── FieldImpl.java │ │ │ │ ├── FormImpl.java │ │ │ │ ├── FormParameters.java │ │ │ │ ├── FormServiceDefinitionParser.java │ │ │ │ ├── FormServiceImpl.java │ │ │ │ ├── GroupImpl.java │ │ │ │ ├── MessageContextFactory.java │ │ │ │ ├── ValidatorContextImpl.java │ │ │ │ ├── condition │ │ │ │ │ └── JexlCondition.java │ │ │ │ ├── configuration │ │ │ │ │ ├── AbstractConfig.java │ │ │ │ │ ├── FieldConfigImpl.java │ │ │ │ │ ├── FormConfigImpl.java │ │ │ │ │ └── GroupConfigImpl.java │ │ │ │ └── validation │ │ │ │ │ ├── DateValidator.java │ │ │ │ │ ├── MailAddressValidator.java │ │ │ │ │ ├── MultiValuesCountValidator.java │ │ │ │ │ ├── NoopValidator.java │ │ │ │ │ ├── NumberCompareValidator.java │ │ │ │ │ ├── NumberValidator.java │ │ │ │ │ ├── RegexpValidator.java │ │ │ │ │ ├── RequiredValidator.java │ │ │ │ │ ├── StringByteLengthValidator.java │ │ │ │ │ ├── StringCompareValidator.java │ │ │ │ │ ├── StringLengthValidator.java │ │ │ │ │ ├── UploadedFileValidator.java │ │ │ │ │ └── composite │ │ │ │ │ ├── AllOfValidator.java │ │ │ │ │ ├── AllOfValuesValidator.java │ │ │ │ │ ├── AnyOfValidator.java │ │ │ │ │ ├── AnyOfValuesValidator.java │ │ │ │ │ ├── ChooseValidator.java │ │ │ │ │ ├── IfValidator.java │ │ │ │ │ ├── NoneOfValidator.java │ │ │ │ │ └── NoneOfValuesValidator.java │ │ │ │ └── support │ │ │ │ ├── AbstractCompositeValidator.java │ │ │ │ ├── AbstractCompositeValidatorDefinitionParser.java │ │ │ │ ├── AbstractCondition.java │ │ │ │ ├── AbstractConditionDefinitionParser.java │ │ │ │ ├── AbstractMultiValuesValidator.java │ │ │ │ ├── AbstractNumberValidator.java │ │ │ │ ├── AbstractOptionalValidator.java │ │ │ │ ├── AbstractRegexpValidator.java │ │ │ │ ├── AbstractSimpleCompositeValidator.java │ │ │ │ ├── AbstractValidator.java │ │ │ │ ├── AbstractValidatorDefinitionParser.java │ │ │ │ ├── CompareOperator.java │ │ │ │ ├── FormTool.java │ │ │ │ └── NumberSupport.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-form-conditions.bean-definition-parsers │ │ │ ├── services-form-validators.bean-definition-parsers │ │ │ ├── services-pull-factories.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── form.xsd │ │ │ ├── form │ │ │ │ ├── conditions │ │ │ │ │ └── jexl-condition.xsd │ │ │ │ └── validators │ │ │ │ │ ├── all-of-values.xsd │ │ │ │ │ ├── all-of.xsd │ │ │ │ │ ├── any-of-values.xsd │ │ │ │ │ ├── any-of.xsd │ │ │ │ │ ├── choose.xsd │ │ │ │ │ ├── custom-error.xsd │ │ │ │ │ ├── date-validator.xsd │ │ │ │ │ ├── if.xsd │ │ │ │ │ ├── mail-address-validator.xsd │ │ │ │ │ ├── multi-values-count-validator.xsd │ │ │ │ │ ├── none-of-values.xsd │ │ │ │ │ ├── none-of.xsd │ │ │ │ │ ├── number-compare-validator.xsd │ │ │ │ │ ├── number-validator.xsd │ │ │ │ │ ├── regexp-validator.xsd │ │ │ │ │ ├── required-validator.xsd │ │ │ │ │ ├── string-byte-length-validator.xsd │ │ │ │ │ ├── string-compare-validator.xsd │ │ │ │ │ ├── string-length-validator.xsd │ │ │ │ │ └── uploaded-file-validator.xsd │ │ │ └── pull │ │ │ │ └── factories │ │ │ │ └── form-tool.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── data │ │ │ ├── file1.txt │ │ │ ├── file2.txt │ │ │ ├── file3.txt │ │ │ ├── file4.gif │ │ │ ├── file4_1.GIF │ │ │ ├── file5.jpg │ │ │ ├── file6.jpg │ │ │ ├── file6_1.JPG │ │ │ └── file7 │ │ ├── myform.properties │ │ ├── myform_zh_CN.properties │ │ ├── myform_zh_TW.properties │ │ ├── services-base-with-upload.xml │ │ ├── services-base-without-upload.xml │ │ ├── services-form-config.xml │ │ ├── services-form-no-request.xml │ │ ├── services-form-validators.xml │ │ ├── services-form-with-message-source.xml │ │ ├── services-form.xml │ │ └── services-skip-validation.xml │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── form │ │ ├── AbstractFormServiceTests.java │ │ ├── FieldTests.java │ │ ├── FormServiceSkipValidationTests.java │ │ ├── FormServiceTests.java │ │ ├── FormTests.java │ │ ├── FormToolTests.java │ │ ├── GroupTests.java │ │ ├── MessageSourceTests.java │ │ ├── UncompressedFieldKeyTests.java │ │ ├── configuration │ │ ├── AbstractConfigTests.java │ │ ├── FieldConfigTests.java │ │ ├── FormConfigTests.java │ │ ├── FormServiceConfigTests.java │ │ └── GroupConfigTests.java │ │ ├── impl │ │ ├── MessageContextTests.java │ │ ├── MyPropertyEditorRegistrar.java │ │ ├── condition │ │ │ └── JexlConditionTests.java │ │ └── validation │ │ │ ├── AbstractNumberValidatorTests.java │ │ │ ├── AbstractValidatorTests.java │ │ │ ├── DateValidatorTests.java │ │ │ ├── MailAddressValidatorTests.java │ │ │ ├── MultiFieldsValidator.java │ │ │ ├── MultiValuesCountValidatorTests.java │ │ │ ├── MyValidator.java │ │ │ ├── MyValidator2.java │ │ │ ├── NoMessageValidator.java │ │ │ ├── NumberCompareValidatorTests.java │ │ │ ├── NumberValidatorTests.java │ │ │ ├── RegexpValidatorTests.java │ │ │ ├── RequiredValidatorTests.java │ │ │ ├── StringByteLengthValidatorTests.java │ │ │ ├── StringCompareValidatorTests.java │ │ │ ├── StringLengthValidatorTests.java │ │ │ ├── UploadedFileValidatorTests.java │ │ │ └── composite │ │ │ ├── AbstractCompositeValidatorTests.java │ │ │ ├── AbstractSimpleCompositeValidatorTests.java │ │ │ ├── AllOfValidatorTests.java │ │ │ ├── AllOfValuesValidatorTests.java │ │ │ ├── AnyOfValidatorTests.java │ │ │ ├── AnyOfValuesValidatorTests.java │ │ │ ├── ChooseValidatorTests.java │ │ │ ├── IfValidatorTests.java │ │ │ ├── NoneOfValidatorTests.java │ │ │ └── NoneOfValuesValidatorTests.java │ │ └── support │ │ ├── CompareOperatorTests.java │ │ └── NumberSupportTests.java ├── freemarker │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── freemarker │ │ │ │ ├── FreeMarkerConfiguration.java │ │ │ │ ├── FreeMarkerEngine.java │ │ │ │ ├── FreeMarkerPlugin.java │ │ │ │ ├── impl │ │ │ │ ├── FreeMarkerConfigurationImpl.java │ │ │ │ ├── FreeMarkerEngineDefinitionParser.java │ │ │ │ ├── FreeMarkerEngineImpl.java │ │ │ │ ├── SpringResourceLoaderAdapter.java │ │ │ │ └── TemplateContextAdapter.java │ │ │ │ └── support │ │ │ │ ├── DefaultBeansWrapper.java │ │ │ │ └── RenderableModel.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-template-engines.bean-definition-parsers │ │ │ ├── services │ │ │ └── template │ │ │ │ └── engines │ │ │ │ └── freemarker-engine.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── services-skip-validation.xml │ │ ├── services.xml │ │ ├── services_dev.xml │ │ ├── services_empty_property.xml │ │ └── templates │ │ │ ├── test.ftl │ │ │ ├── test2.ftl │ │ │ ├── test3.ftl │ │ │ ├── test_html_escape.ftl │ │ │ ├── test_render.ftl │ │ │ ├── test_render_error.ftl │ │ │ ├── test_renderable.ftl │ │ │ └── test_url_encode.ftl │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── freemarker │ │ ├── FreeMarkerEngineSkipValidationTests.java │ │ ├── FreeMarkerEngineTests.java │ │ ├── SpringResourceLoaderAdapterTests.java │ │ ├── TemplateContextAdapterTests.java │ │ └── impl │ │ └── MyPlugin.java ├── jsp │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── jsp │ │ │ │ ├── JspEngine.java │ │ │ │ └── impl │ │ │ │ ├── JspEngineDefinitionParser.java │ │ │ │ ├── JspEngineImpl.java │ │ │ │ ├── JspResponse.java │ │ │ │ └── TemplateContextAdapter.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-template-engines.bean-definition-parsers │ │ │ └── services │ │ │ └── template │ │ │ └── engines │ │ │ └── jsp-engine.xsd │ │ └── test │ │ ├── config │ │ ├── webapp │ │ │ ├── WEB-INF │ │ │ │ └── web.xml │ │ │ ├── services-skip-validation.xml │ │ │ ├── services.xml │ │ │ └── templates │ │ │ │ ├── test.jsp │ │ │ │ └── test.jspx │ │ ├── webapp1 │ │ │ ├── WEB-INF │ │ │ │ └── web.xml │ │ │ ├── mytemplates │ │ │ │ └── mytemplate.jsp │ │ │ └── services.xml │ │ └── webapp2 │ │ │ ├── WEB-INF-2 │ │ │ └── web.xml │ │ │ ├── mytemplates │ │ │ └── mytemplate.jsp │ │ │ └── services.xml │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── jsp │ │ ├── AbstractJspEngineTests.java │ │ ├── JspEngineSkipValidationTests.java │ │ ├── JspEngineTests.java │ │ ├── JspResponseTests.java │ │ └── TemplateContextAdapterTests.java ├── mail │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── mail │ │ │ │ ├── MailConstant.java │ │ │ │ ├── MailException.java │ │ │ │ ├── MailNotFoundException.java │ │ │ │ ├── MailService.java │ │ │ │ ├── MailSettings.java │ │ │ │ ├── MailStoreNotFoundException.java │ │ │ │ ├── MailTransportNotFoundException.java │ │ │ │ ├── builder │ │ │ │ ├── InvalidAddressException.java │ │ │ │ ├── MailAddressType.java │ │ │ │ ├── MailBuilder.java │ │ │ │ ├── MailBuilderException.java │ │ │ │ ├── MailContent.java │ │ │ │ ├── Multipart.java │ │ │ │ └── content │ │ │ │ │ ├── AbstractContent.java │ │ │ │ │ ├── AlternativeMultipartContent.java │ │ │ │ │ ├── AttachmentContent.java │ │ │ │ │ ├── HTMLTemplateContent.java │ │ │ │ │ ├── MixedMultipartContent.java │ │ │ │ │ ├── MultipartContent.java │ │ │ │ │ ├── TemplateContent.java │ │ │ │ │ ├── TextContent.java │ │ │ │ │ └── TextTemplateContent.java │ │ │ │ ├── impl │ │ │ │ ├── MailBuilderFactory.java │ │ │ │ ├── MailServiceDefinitionParser.java │ │ │ │ ├── MailServiceImpl.java │ │ │ │ └── content │ │ │ │ │ ├── AbstractMultipartContentDefinitionParser.java │ │ │ │ │ ├── AlternativeContentDefinitionParser.java │ │ │ │ │ ├── AttachmentContentDefinitionParser.java │ │ │ │ │ ├── HTMLTemplateContentDefinitionParser.java │ │ │ │ │ ├── MixedContentDefinitionParser.java │ │ │ │ │ ├── TextContentDefinitionParser.java │ │ │ │ │ └── TextTemplateContentDefinitionParser.java │ │ │ │ ├── session │ │ │ │ ├── MailSession.java │ │ │ │ ├── MailStore.java │ │ │ │ ├── MailStoreHandler.java │ │ │ │ ├── MailTransport.java │ │ │ │ └── MailTransportHandler.java │ │ │ │ ├── support │ │ │ │ ├── AbstractDataSource.java │ │ │ │ ├── DefaultMailStoreHandler.java │ │ │ │ ├── DefaultMailTransportHandler.java │ │ │ │ └── ResourceDataSource.java │ │ │ │ └── util │ │ │ │ └── MailUtil.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-mails-contents.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── mails.xsd │ │ │ └── mails │ │ │ │ └── contents │ │ │ │ ├── alternative-content.xsd │ │ │ │ ├── attachment-content.xsd │ │ │ │ ├── html-template-content.xsd │ │ │ │ ├── mixed-content.xsd │ │ │ │ ├── text-content.xsd │ │ │ │ └── text-template-content.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── emptyfile │ │ ├── java.gif │ │ ├── services.xml │ │ ├── services_import_null.xml │ │ ├── subdir │ │ │ └── bible.jpg │ │ ├── templates │ │ │ └── mail │ │ │ │ ├── complexhtml.ftl │ │ │ │ ├── complexhtml.vm │ │ │ │ ├── dup_fileNames.vm │ │ │ │ ├── imageNotFound.vm │ │ │ │ ├── mytemplate.ftl │ │ │ │ ├── mytemplate.vm │ │ │ │ └── streamOnlyResource.vm │ │ ├── testfile.txt │ │ ├── welcome.eml │ │ └── welcome_utf8.eml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── mail │ │ │ ├── AbstractMailBuilderTests.java │ │ │ ├── AbstractTemplateContentTests.java │ │ │ ├── AttachmentContentTests.java │ │ │ ├── HTMLTemplateContentTests.java │ │ │ ├── IntegrationMailBuilderTests.java │ │ │ ├── MailBuilderTests.java │ │ │ ├── MailContentBasicTests.java │ │ │ ├── MailServiceTests.java │ │ │ ├── MultipartContentTests.java │ │ │ ├── TextContentTests.java │ │ │ ├── TextTemplateContentTests.java │ │ │ ├── mock │ │ │ ├── MyMockStore.java │ │ │ └── MyMockTransport.java │ │ │ ├── session │ │ │ ├── AbstractMailSessionTests.java │ │ │ ├── MailStoreTests.java │ │ │ └── MailTransportTests.java │ │ │ ├── support │ │ │ └── ResourceDataSourceTests.java │ │ │ └── util │ │ │ └── MailUtilTests.java │ │ └── resources │ │ └── META-INF │ │ └── javamail.providers ├── mappingrule │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── mappingrule │ │ │ │ ├── MappingRule.java │ │ │ │ ├── MappingRuleException.java │ │ │ │ ├── MappingRuleNotFoundException.java │ │ │ │ ├── MappingRuleService.java │ │ │ │ ├── impl │ │ │ │ ├── MappingRuleServiceDefinitionParser.java │ │ │ │ ├── MappingRuleServiceImpl.java │ │ │ │ └── rule │ │ │ │ │ ├── DirectModuleMappingRule.java │ │ │ │ │ ├── DirectTemplateMappingRule.java │ │ │ │ │ ├── ExtensionMappingRule.java │ │ │ │ │ ├── FallbackIterator.java │ │ │ │ │ ├── FallbackModuleMappingRule.java │ │ │ │ │ └── FallbackTemplateMappingRule.java │ │ │ │ └── support │ │ │ │ ├── AbstractMappingRule.java │ │ │ │ ├── AbstractMappingRuleDefinitionParser.java │ │ │ │ ├── AbstractModuleMappingRule.java │ │ │ │ ├── AbstractModuleMappingRuleDefinitionParser.java │ │ │ │ ├── AbstractTemplateMappingRule.java │ │ │ │ └── AbstractTemplateMappingRuleDefinitionParser.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-mapping-rules.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── mapping-rules.xsd │ │ │ └── mapping-rules │ │ │ │ ├── direct-module-rule.xsd │ │ │ │ ├── direct-template-rule.xsd │ │ │ │ ├── extension-rule.xsd │ │ │ │ ├── fallback-module-rule.xsd │ │ │ │ └── fallback-template-rule.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── services-parent.xml │ │ ├── services-skip-validation.xml │ │ ├── services.xml │ │ └── templates │ │ │ ├── myprefix.locale │ │ │ ├── aaa │ │ │ │ ├── bbb │ │ │ │ │ ├── default.vm │ │ │ │ │ ├── default_zh_TW.jsp │ │ │ │ │ └── myOtherModule_zh.vm │ │ │ │ ├── default.vm │ │ │ │ └── default_zh.jsp │ │ │ └── ccc │ │ │ │ └── default_zh.vm │ │ │ └── myprefix │ │ │ ├── aaa │ │ │ ├── bbb │ │ │ │ ├── default.jsp │ │ │ │ ├── default.vm │ │ │ │ └── myOtherModule.vm │ │ │ ├── default.jsp │ │ │ └── default.vm │ │ │ └── ccc │ │ │ └── default.vm │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ ├── app1 │ │ │ └── module │ │ │ │ └── screen │ │ │ │ ├── MyDefaultModule.java │ │ │ │ ├── aaa │ │ │ │ ├── Default.java │ │ │ │ └── bbb │ │ │ │ │ ├── Default.java │ │ │ │ │ └── MyOtherModule.java │ │ │ │ └── ccc │ │ │ │ └── Default.java │ │ │ └── citrus │ │ │ └── service │ │ │ └── mappingrule │ │ │ ├── AbstractMappingRuleServiceTests.java │ │ │ ├── AbstractMappingRuleTests.java │ │ │ ├── DirectModuleTests.java │ │ │ ├── DirectTemplateTests.java │ │ │ ├── ExtensionTests.java │ │ │ ├── FallbackModuleTests.java │ │ │ ├── FallbackTemplateTests.java │ │ │ ├── MappingRuleServiceSkipValidationTests.java │ │ │ ├── MappingRuleServiceTests.java │ │ │ └── impl │ │ │ ├── SimpleEngine.java │ │ │ └── rule │ │ │ └── FallbackIteratorTests.java │ │ └── resources │ │ └── app1 │ │ ├── Failure.groovy │ │ └── module │ │ ├── action │ │ └── myprod │ │ │ └── MyAction.groovy │ │ ├── control │ │ └── myprod │ │ │ └── MyControl.groovy │ │ └── screens │ │ ├── AbstractScreen.groovy │ │ └── MyScreen.groovy ├── moduleloader │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── moduleloader │ │ │ │ ├── Module.java │ │ │ │ ├── ModuleAdapterFactory.java │ │ │ │ ├── ModuleEvent.java │ │ │ │ ├── ModuleEventException.java │ │ │ │ ├── ModuleEventNotFoundException.java │ │ │ │ ├── ModuleFactory.java │ │ │ │ ├── ModuleInfo.java │ │ │ │ ├── ModuleLoaderException.java │ │ │ │ ├── ModuleLoaderService.java │ │ │ │ ├── ModuleNotFoundException.java │ │ │ │ ├── ModuleReturningValue.java │ │ │ │ ├── SkipModuleExecutionException.java │ │ │ │ ├── UnadaptableModuleException.java │ │ │ │ └── impl │ │ │ │ ├── ModuleKey.java │ │ │ │ ├── ModuleLoaderServiceDefinitionParser.java │ │ │ │ ├── ModuleLoaderServiceImpl.java │ │ │ │ ├── adapter │ │ │ │ ├── AbstractDataBindingAdapter.java │ │ │ │ ├── AbstractDataBindingAdapterFactory.java │ │ │ │ ├── AbstractDataBindingAdapterFactoryDefinitionParser.java │ │ │ │ ├── AbstractModuleEventAdapter.java │ │ │ │ ├── AbstractModuleEventAdapterFactory.java │ │ │ │ ├── ActionEventAdapter.java │ │ │ │ ├── ActionEventAdapterFactory.java │ │ │ │ ├── ActionEventAdapterFactoryDefinitionParser.java │ │ │ │ ├── DataBindingAdapter.java │ │ │ │ ├── DataBindingAdapterFactory.java │ │ │ │ ├── DataBindingAdapterFactoryDefinitionParser.java │ │ │ │ ├── MethodInvoker.java │ │ │ │ ├── ScreenEventAdapter.java │ │ │ │ ├── ScreenEventAdapterFactory.java │ │ │ │ └── ScreenEventAdapterFactoryDefinitionParser.java │ │ │ │ └── factory │ │ │ │ ├── AbstractBeanFactoryBasedModuleFactory.java │ │ │ │ ├── AbstractModuleFactoryDefinitionParser.java │ │ │ │ ├── ClassModuleFactory.java │ │ │ │ ├── ClassModuleFactoryDefinitionParser.java │ │ │ │ ├── ModuleInfo.java │ │ │ │ ├── ScriptModuleFactory.java │ │ │ │ └── ScriptModuleFactoryDefinitionParser.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-module-loader-adapters.bean-definition-parsers │ │ │ ├── services-module-loader-factories.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── module-loader.xsd │ │ │ └── module-loader │ │ │ │ ├── adapters │ │ │ │ ├── action-event-adapter.xsd │ │ │ │ ├── data-binding-adapter.xsd │ │ │ │ └── screen-event-adapter.xsd │ │ │ │ └── factories │ │ │ │ ├── class-modules.xsd │ │ │ │ ├── factories-base.xsd │ │ │ │ └── script-modules.xsd │ │ │ ├── spring.configuration-points │ │ │ └── spring.schemas │ │ └── test │ │ ├── config │ │ ├── adapter │ │ │ ├── services-lazyinit.xml │ │ │ └── services.xml │ │ ├── base-dev.xml │ │ ├── base-production.xml │ │ ├── base-root.xml │ │ ├── dataresolver │ │ │ ├── services-no-dataresolver.xml │ │ │ ├── services-with-dataresolver-default-adapters.xml │ │ │ ├── services-with-dataresolver-defined-adapters-default-resolver-ref.xml │ │ │ └── services-with-dataresolver-defined-adapters.xml │ │ ├── factory │ │ │ ├── services-class-modules-wrong.xml │ │ │ ├── services-class-modules.xml │ │ │ ├── services-script-modules-wrong.xml │ │ │ └── services-script-modules.xml │ │ ├── services-module-loader.xml │ │ └── services-skip-validation.xml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ ├── citrus │ │ │ └── service │ │ │ │ ├── AbstractWebTests.java │ │ │ │ └── moduleloader │ │ │ │ ├── AbstractModuleLoaderTests.java │ │ │ │ ├── ModuleKeyTests.java │ │ │ │ ├── ModuleLoaderServiceSkipValidationTests.java │ │ │ │ ├── ModuleLoaderServiceTests.java │ │ │ │ ├── MyScreen.java │ │ │ │ └── impl │ │ │ │ ├── adapter │ │ │ │ ├── ActionEventTests.java │ │ │ │ ├── DataBindingTests.java │ │ │ │ ├── ScreenEventTests.java │ │ │ │ └── SimpleModuleTests.java │ │ │ │ ├── dataresolver │ │ │ │ └── ParamBindingTests.java │ │ │ │ └── factory │ │ │ │ ├── ClassModuleFactoryTests.java │ │ │ │ └── ScriptModuleFactoryTests.java │ │ │ ├── test │ │ │ └── app1 │ │ │ │ ├── Failure.java │ │ │ │ ├── module │ │ │ │ ├── action │ │ │ │ │ └── myprod │ │ │ │ │ │ ├── MyAction.java │ │ │ │ │ │ ├── MyActionFailure.java │ │ │ │ │ │ └── MyActionNoRunData.java │ │ │ │ ├── control │ │ │ │ │ ├── InvalidControl.java │ │ │ │ │ └── myprod │ │ │ │ │ │ ├── MyControl.java │ │ │ │ │ │ └── MyControl2.java │ │ │ │ └── screens │ │ │ │ │ ├── AbstractScreen.java │ │ │ │ │ └── MyScreen.java │ │ │ │ └── module2 │ │ │ │ └── screen │ │ │ │ ├── MyEventScreen.java │ │ │ │ ├── MyEventScreenFailure.java │ │ │ │ ├── MyEventScreenHybrid.java │ │ │ │ └── MyEventScreenWithDefaultHandler.java │ │ │ ├── test2 │ │ │ ├── dataresolver │ │ │ │ ├── MapResolverFactory.java │ │ │ │ ├── Param.java │ │ │ │ ├── RequestResolverFactory.java │ │ │ │ ├── Skip.java │ │ │ │ └── SkipModuleResolverFactory.java │ │ │ └── module │ │ │ │ ├── action │ │ │ │ ├── MyAction.java │ │ │ │ ├── MyParameterizedAction.java │ │ │ │ ├── MySkippableAction.java │ │ │ │ └── MySkippableAction2.java │ │ │ │ └── screen │ │ │ │ ├── MyParameterizedScreen.java │ │ │ │ ├── MyScreen.java │ │ │ │ ├── MySkippableScreen.java │ │ │ │ └── MySkippableScreen2.java │ │ │ └── test3 │ │ │ └── app2 │ │ │ ├── Reloadable.java │ │ │ ├── filter │ │ │ └── MyTypeFilter.java │ │ │ └── module │ │ │ ├── action │ │ │ ├── FirstAction.java │ │ │ ├── SecondAction.java │ │ │ └── ThirdAction.java │ │ │ └── screen │ │ │ ├── FirstScreen.java │ │ │ ├── SecondScreen.java │ │ │ └── ThirdScreen.java │ │ └── resources │ │ └── app1 │ │ ├── Failure.groovy │ │ └── module │ │ ├── action │ │ └── myprod │ │ │ └── MyAction.groovy │ │ ├── control │ │ └── myprod │ │ │ └── MyControl.groovy │ │ └── screens │ │ ├── AbstractScreen.groovy │ │ └── MyScreen.groovy ├── pipeline │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── pipeline │ │ │ │ ├── Condition.java │ │ │ │ ├── LabelNotDefinedException.java │ │ │ │ ├── Pipeline.java │ │ │ │ ├── PipelineContext.java │ │ │ │ ├── PipelineException.java │ │ │ │ ├── PipelineInvocationHandle.java │ │ │ │ ├── PipelineStates.java │ │ │ │ ├── TooManyLoopsException.java │ │ │ │ ├── Valve.java │ │ │ │ ├── impl │ │ │ │ ├── PipelineDefinitionParser.java │ │ │ │ ├── PipelineImpl.java │ │ │ │ ├── condition │ │ │ │ │ ├── AllOf.java │ │ │ │ │ ├── AnyOf.java │ │ │ │ │ ├── JexlCondition.java │ │ │ │ │ └── NoneOf.java │ │ │ │ └── valve │ │ │ │ │ ├── BreakIfValve.java │ │ │ │ │ ├── BreakUnlessValve.java │ │ │ │ │ ├── BreakValve.java │ │ │ │ │ ├── ChooseValve.java │ │ │ │ │ ├── ExitValve.java │ │ │ │ │ ├── IfValve.java │ │ │ │ │ ├── LoopValve.java │ │ │ │ │ ├── SubPipelineValve.java │ │ │ │ │ ├── TryCatchFinallyValve.java │ │ │ │ │ └── WhileLoopValve.java │ │ │ │ └── support │ │ │ │ ├── AbstractCompositeCondition.java │ │ │ │ ├── AbstractCompositeConditionDefinitionParser.java │ │ │ │ ├── AbstractCondition.java │ │ │ │ ├── AbstractConditionDefinitionParser.java │ │ │ │ ├── AbstractValve.java │ │ │ │ └── AbstractValveDefinitionParser.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-pipeline-conditions.bean-definition-parsers │ │ │ ├── services-pipeline-valves.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── pipeline.xsd │ │ │ └── pipeline │ │ │ │ ├── conditions │ │ │ │ ├── all-of.xsd │ │ │ │ ├── any-of.xsd │ │ │ │ ├── jexl-condition.xsd │ │ │ │ └── none-of.xsd │ │ │ │ └── valves │ │ │ │ ├── break-if.xsd │ │ │ │ ├── break-unless.xsd │ │ │ │ ├── break.xsd │ │ │ │ ├── choose.xsd │ │ │ │ ├── exit.xsd │ │ │ │ ├── if.xsd │ │ │ │ ├── loop.xsd │ │ │ │ ├── sub-pipeline.xsd │ │ │ │ ├── try-catch-finally.xsd │ │ │ │ └── while.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── services-conditions.xml │ │ ├── services-pipeline.xml │ │ └── services-valves.xml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── pipeline │ │ │ ├── AbstractPipelineTests.java │ │ │ ├── PipelineServiceTests.java │ │ │ ├── PipelineTests.java │ │ │ ├── condition │ │ │ ├── AbstractCompositeConditionTests.java │ │ │ ├── AbstractConditionTests.java │ │ │ ├── AllOfConditionTests.java │ │ │ ├── AnyOfConditionTests.java │ │ │ ├── JexlConditionTests.java │ │ │ ├── MyCondition.java │ │ │ └── NoneOfConditionTests.java │ │ │ └── valve │ │ │ ├── AbstractBreakValveTests.java │ │ │ ├── AbstractLoopValveTests.java │ │ │ ├── AbstractValveTests.java │ │ │ ├── BreakIfValveTests.java │ │ │ ├── BreakUnlessTests.java │ │ │ ├── BreakValveTests.java │ │ │ ├── ChooseValveTests.java │ │ │ ├── ExecutionLog.java │ │ │ ├── ExitValveTests.java │ │ │ ├── IfValveTests.java │ │ │ ├── LogAndBreakValve.java │ │ │ ├── LogAndInvokeSubValve.java │ │ │ ├── LogAndReturnValve.java │ │ │ ├── LogValve.java │ │ │ ├── LoopValveTests.java │ │ │ ├── RecoveryValve.java │ │ │ ├── SubPipelineValveTests.java │ │ │ ├── TryCatchFinallyValveTests.java │ │ │ ├── WhileLoopValveTests.java │ │ │ └── WrongValve.java │ │ └── resources │ │ └── META-INF │ │ ├── services-pipeline-valves.bean-definition-parsers │ │ └── services │ │ └── pipeline │ │ └── valves │ │ └── log.xsd ├── pull │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── pull │ │ │ │ ├── PullContext.java │ │ │ │ ├── PullException.java │ │ │ │ ├── PullService.java │ │ │ │ ├── RuntimeToolSetFactory.java │ │ │ │ ├── ToolFactory.java │ │ │ │ ├── ToolNameAware.java │ │ │ │ ├── ToolSetFactory.java │ │ │ │ ├── impl │ │ │ │ ├── PullServiceDefinitionParser.java │ │ │ │ └── PullServiceImpl.java │ │ │ │ └── support │ │ │ │ ├── BeanTool.java │ │ │ │ ├── ConstantTool.java │ │ │ │ ├── ConstantToolSet.java │ │ │ │ ├── ContextExposerToolSet.java │ │ │ │ ├── MixinTool.java │ │ │ │ └── UtilToolSet.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-pull-factories.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── pull.xsd │ │ │ └── pull │ │ │ │ └── factories │ │ │ │ ├── bean-tool.xsd │ │ │ │ ├── constants.xsd │ │ │ │ ├── context-exposer.xsd │ │ │ │ ├── mixin.xsd │ │ │ │ └── utils.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── logback.xml │ │ ├── pull │ │ │ ├── services-pull-names.xml │ │ │ ├── services-pull-parent.xml │ │ │ ├── services-pull-sub.xml │ │ │ ├── services-pull-tool.xml │ │ │ ├── services-pull-wrong-dup-id.xml │ │ │ ├── services-pull-wrong-no-id-1.xml │ │ │ ├── services-pull-wrong-no-id-2.xml │ │ │ └── services-pull.xml │ │ └── services-skip-validation.xml │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── pull │ │ │ ├── AbstractPullServiceConfigTests.java │ │ │ ├── PullServiceConfigTests.java │ │ │ ├── PullServiceSkipValidationTests.java │ │ │ ├── impl │ │ │ ├── AbstractPullServiceTests.java │ │ │ ├── PullServiceBasicTests.java │ │ │ ├── PullServiceTests.java │ │ │ └── ToolNameTests.java │ │ │ ├── support │ │ │ ├── BeanToolTests.java │ │ │ ├── ContextExposerToolSetTests.java │ │ │ ├── MixinToolTests.java │ │ │ └── UtilToolSetTests.java │ │ │ └── tool │ │ │ ├── BaseFactory.java │ │ │ ├── ObjectRuntimeToolSet.java │ │ │ ├── ObjectTool.java │ │ │ ├── ObjectToolSet.java │ │ │ ├── SimpleTool.java │ │ │ └── SimpleToolSet.java │ │ └── resources │ │ └── META-INF │ │ ├── services-pull-factories.bean-definition-parsers │ │ └── services │ │ └── pull │ │ └── factories │ │ └── my-inner-tool.xsd ├── requestcontext │ ├── docs │ │ └── orders.txt │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── requestcontext │ │ │ │ ├── RequestContext.java │ │ │ │ ├── RequestContextChainingService.java │ │ │ │ ├── RequestContextException.java │ │ │ │ ├── RequestContextFactory.java │ │ │ │ ├── RequestContextInfo.java │ │ │ │ ├── TwoPhaseCommitRequestContext.java │ │ │ │ ├── basic │ │ │ │ ├── BasicRequestContext.java │ │ │ │ ├── CookieHeaderValueInterceptor.java │ │ │ │ ├── CookieInterceptor.java │ │ │ │ ├── CookieRejectedException.java │ │ │ │ ├── HeaderNameInterceptor.java │ │ │ │ ├── HeaderValueInterceptor.java │ │ │ │ ├── RedirectLocationInterceptor.java │ │ │ │ ├── RedirectLocationRejectedException.java │ │ │ │ ├── RequestContextLifecycleInterceptor.java │ │ │ │ ├── ResponseHeaderInterceptor.java │ │ │ │ ├── ResponseHeaderRejectedException.java │ │ │ │ ├── StatusMessageInterceptor.java │ │ │ │ └── impl │ │ │ │ │ ├── BasicRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── BasicRequestContextFactoryImpl.java │ │ │ │ │ ├── BasicRequestContextImpl.java │ │ │ │ │ ├── BasicResponseImpl.java │ │ │ │ │ └── ResponseHeaderSecurityFilter.java │ │ │ │ ├── buffered │ │ │ │ ├── BufferCommitFailedException.java │ │ │ │ ├── BufferedRequestContext.java │ │ │ │ └── impl │ │ │ │ │ ├── BufferedRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── BufferedRequestContextFactoryImpl.java │ │ │ │ │ ├── BufferedRequestContextImpl.java │ │ │ │ │ └── BufferedResponseImpl.java │ │ │ │ ├── impl │ │ │ │ ├── CommitMonitor.java │ │ │ │ ├── CommittingAwarePrintWriter.java │ │ │ │ ├── CommittingAwareResponse.java │ │ │ │ ├── CommittingAwareServletOutputStream.java │ │ │ │ ├── HeaderCommitter.java │ │ │ │ ├── RequestContextBeanFactoryPostProcessor.java │ │ │ │ ├── RequestContextChainingServiceDefinitionParser.java │ │ │ │ ├── RequestContextChainingServiceImpl.java │ │ │ │ └── SimpleRequestContext.java │ │ │ │ ├── lazycommit │ │ │ │ ├── LazyCommitFailedException.java │ │ │ │ ├── LazyCommitRequestContext.java │ │ │ │ └── impl │ │ │ │ │ ├── LazyCommitRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── LazyCommitRequestContextFactoryImpl.java │ │ │ │ │ └── LazyCommitRequestContextImpl.java │ │ │ │ ├── locale │ │ │ │ ├── SetLocaleRequestContext.java │ │ │ │ └── impl │ │ │ │ │ ├── SetLocaleOverrider.java │ │ │ │ │ ├── SetLocaleRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── SetLocaleRequestContextFactoryImpl.java │ │ │ │ │ └── SetLocaleRequestContextImpl.java │ │ │ │ ├── parser │ │ │ │ ├── AbstractValueParser.java │ │ │ │ ├── CookieParser.java │ │ │ │ ├── ParameterParser.java │ │ │ │ ├── ParameterParserFilter.java │ │ │ │ ├── ParameterValueFilter.java │ │ │ │ ├── ParserRequestContext.java │ │ │ │ ├── UploadedFileFilter.java │ │ │ │ ├── ValueParser.java │ │ │ │ ├── filter │ │ │ │ │ ├── HTMLInputFilter.java │ │ │ │ │ ├── HTMLParameterValueFilter.java │ │ │ │ │ └── UploadedFileExtensionWhitelist.java │ │ │ │ └── impl │ │ │ │ │ ├── CookieParserImpl.java │ │ │ │ │ ├── ParameterParserImpl.java │ │ │ │ │ ├── ParserRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── ParserRequestContextFactoryImpl.java │ │ │ │ │ └── ParserRequestContextImpl.java │ │ │ │ ├── rewrite │ │ │ │ ├── RewriteContext.java │ │ │ │ ├── RewriteException.java │ │ │ │ ├── RewriteRequestContext.java │ │ │ │ ├── RewriteSubstitutionContext.java │ │ │ │ ├── RewriteSubstitutionHandler.java │ │ │ │ ├── impl │ │ │ │ │ ├── Flags.java │ │ │ │ │ ├── RewriteCondition.java │ │ │ │ │ ├── RewriteConditionBeanInfo.java │ │ │ │ │ ├── RewriteRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── RewriteRequestContextFactoryImpl.java │ │ │ │ │ ├── RewriteRequestContextImpl.java │ │ │ │ │ ├── RewriteRule.java │ │ │ │ │ ├── RewriteSubstitution.java │ │ │ │ │ ├── RewriteSubstitutionBeanInfo.java │ │ │ │ │ └── RewriteUtil.java │ │ │ │ └── support │ │ │ │ │ └── UrlNormalizer.java │ │ │ │ ├── rundata │ │ │ │ ├── RunData.java │ │ │ │ ├── User.java │ │ │ │ └── impl │ │ │ │ │ ├── RunDataFactoryDefinitionParser.java │ │ │ │ │ ├── RunDataFactoryImpl.java │ │ │ │ │ └── RunDataImpl.java │ │ │ │ ├── session │ │ │ │ ├── ExactMatchesOnlySessionStore.java │ │ │ │ ├── HttpHeaderSessionStore.java │ │ │ │ ├── SessionAttributeInterceptor.java │ │ │ │ ├── SessionConfig.java │ │ │ │ ├── SessionFrameworkException.java │ │ │ │ ├── SessionIDGenerator.java │ │ │ │ ├── SessionInterceptor.java │ │ │ │ ├── SessionLifecycleListener.java │ │ │ │ ├── SessionModel.java │ │ │ │ ├── SessionModelEncoder.java │ │ │ │ ├── SessionRequestContext.java │ │ │ │ ├── SessionStore.java │ │ │ │ ├── encoder │ │ │ │ │ ├── AbstractSerializationEncoder.java │ │ │ │ │ ├── SessionEncoder.java │ │ │ │ │ ├── SessionEncoderException.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── SerializationEncoder.java │ │ │ │ ├── encrypter │ │ │ │ │ ├── AbstractJceEncrypter.java │ │ │ │ │ ├── Encrypter.java │ │ │ │ │ ├── SessionEncrypterException.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── AesEncrypter.java │ │ │ │ ├── idgen │ │ │ │ │ ├── random │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── RandomIDGenerator.java │ │ │ │ │ │ │ └── RandomIDGeneratorDefinitionParser.java │ │ │ │ │ └── uuid │ │ │ │ │ │ └── impl │ │ │ │ │ │ ├── UUIDGenerator.java │ │ │ │ │ │ └── UUIDGeneratorDefinitionParser.java │ │ │ │ ├── impl │ │ │ │ │ ├── SessionAttribute.java │ │ │ │ │ ├── SessionImpl.java │ │ │ │ │ ├── SessionModelEncoderImpl.java │ │ │ │ │ ├── SessionModelImpl.java │ │ │ │ │ ├── SessionRequestContextFactoryDefinitionParser.java │ │ │ │ │ ├── SessionRequestContextFactoryImpl.java │ │ │ │ │ └── SessionRequestContextImpl.java │ │ │ │ ├── interceptor │ │ │ │ │ ├── AbstractSessionAttributeAccessController.java │ │ │ │ │ ├── SessionAttributeWhitelist.java │ │ │ │ │ └── SessionLifecycleLogger.java │ │ │ │ ├── serializer │ │ │ │ │ ├── Serializer.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── HessianSerializer.java │ │ │ │ │ │ └── JavaSerializer.java │ │ │ │ ├── store │ │ │ │ │ ├── SessionStoreException.java │ │ │ │ │ ├── cookie │ │ │ │ │ │ ├── AbstractCookieStore.java │ │ │ │ │ │ ├── CookieStore.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ │ ├── CookieStoreDefinitionParser.java │ │ │ │ │ │ │ ├── CookieStoreImpl.java │ │ │ │ │ │ │ ├── SingleValuedCookieStoreDefinitionParser.java │ │ │ │ │ │ │ └── SingleValuedCookieStoreImpl.java │ │ │ │ │ └── simple │ │ │ │ │ │ └── impl │ │ │ │ │ │ ├── SimpleMemoryStoreDefinitionParser.java │ │ │ │ │ │ └── SimpleMemoryStoreImpl.java │ │ │ │ └── valueencoder │ │ │ │ │ ├── AbstractSessionValueEncoder.java │ │ │ │ │ ├── SessionValueEncoder.java │ │ │ │ │ ├── SessionValueEncoderException.java │ │ │ │ │ └── impl │ │ │ │ │ ├── MappedValuesEncoder.java │ │ │ │ │ └── SimpleValueEncoder.java │ │ │ │ ├── support │ │ │ │ ├── AbstractRequestContextFactory.java │ │ │ │ ├── AbstractRequestContextWrapper.java │ │ │ │ ├── AbstractRequestWrapper.java │ │ │ │ ├── AbstractResponseWrapper.java │ │ │ │ └── ValueListSupport.java │ │ │ │ └── util │ │ │ │ ├── CookieSupport.java │ │ │ │ ├── QueryStringParser.java │ │ │ │ ├── RequestContextUtil.java │ │ │ │ ├── ValueList.java │ │ │ │ └── tomcat │ │ │ │ └── ServerCookie.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-request-contexts-basic-interceptors.bean-definition-parsers │ │ │ ├── services-request-contexts-parser-filters.bean-definition-parsers │ │ │ ├── services-request-contexts-session-encoders.bean-definition-parsers │ │ │ ├── services-request-contexts-session-encrypters.bean-definition-parsers │ │ │ ├── services-request-contexts-session-idgens.bean-definition-parsers │ │ │ ├── services-request-contexts-session-interceptors.bean-definition-parsers │ │ │ ├── services-request-contexts-session-model-encoders.bean-definition-parsers │ │ │ ├── services-request-contexts-session-serializers.bean-definition-parsers │ │ │ ├── services-request-contexts-session-stores.bean-definition-parsers │ │ │ ├── services-request-contexts-session-value-encoders.bean-definition-parsers │ │ │ ├── services-request-contexts.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── request-contexts.xsd │ │ │ └── request-contexts │ │ │ │ ├── basic.xsd │ │ │ │ ├── basic │ │ │ │ └── interceptors │ │ │ │ │ └── response-header-security-filter.xsd │ │ │ │ ├── buffered.xsd │ │ │ │ ├── lazy-commit.xsd │ │ │ │ ├── parser.xsd │ │ │ │ ├── parser │ │ │ │ └── filters │ │ │ │ │ └── uploaded-file-whitelist.xsd │ │ │ │ ├── rewrite.xsd │ │ │ │ ├── rundata.xsd │ │ │ │ ├── session.xsd │ │ │ │ ├── session │ │ │ │ ├── encoders │ │ │ │ │ └── serialization-encoder.xsd │ │ │ │ ├── encrypters │ │ │ │ │ └── aes-encrypter.xsd │ │ │ │ ├── idgens │ │ │ │ │ ├── random-id-generator.xsd │ │ │ │ │ └── uuid-generator.xsd │ │ │ │ ├── interceptors │ │ │ │ │ ├── attribute-whitelist.xsd │ │ │ │ │ └── lifecycle-logger.xsd │ │ │ │ ├── model-encoders │ │ │ │ │ └── default-session-model-encoder.xsd │ │ │ │ ├── serializers │ │ │ │ │ ├── hessian-serializer.xsd │ │ │ │ │ └── java-serializer.xsd │ │ │ │ ├── stores │ │ │ │ │ ├── cookie-store.xsd │ │ │ │ │ ├── simple-memory-store.xsd │ │ │ │ │ └── single-valued-cookie-store.xsd │ │ │ │ └── value-encoders │ │ │ │ │ ├── mapped-values-encoder.xsd │ │ │ │ │ └── simple-value-encoder.xsd │ │ │ │ └── set-locale.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── WEB-INF │ │ │ └── web.xml │ │ ├── empty.xml │ │ ├── encoders.xml │ │ ├── form.html │ │ ├── form2.html │ │ ├── logback.xml │ │ ├── services-basic.xml │ │ ├── services-buffered.xml │ │ ├── services-lazycommit.xml │ │ ├── services-locale.xml │ │ ├── services-parser.xml │ │ ├── services-rewrite.xml │ │ ├── services-rundata.xml │ │ ├── services-session-cookie-stores.xml │ │ ├── services-session-interceptors.xml │ │ ├── services-session-single-valued-cookie-stores.xml │ │ ├── services-session.xml │ │ ├── services-skip-validation.xml │ │ ├── services.xml │ │ ├── smallfile │ │ ├── smallfile.gif │ │ ├── smallfile.txt │ │ └── smallfile_.JPG │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── requestcontext │ │ ├── AbstractRequestContextsTests.java │ │ ├── GlobalRequestObjectsTests.java │ │ ├── RequestContextAsyncTests.java │ │ ├── RequestContextChainingServiceTests.java │ │ ├── RequestContextSkipValidationTests.java │ │ ├── RequestContextWrapperTests.java │ │ ├── RequestWrapperTests.java │ │ ├── ResponseWrapperTests.java │ │ ├── basic │ │ ├── AbstractBasicResponseTests.java │ │ ├── BasicRequestContextTests.java │ │ ├── CookieInterceptorTests.java │ │ ├── HeaderNameInterceptorTests.java │ │ ├── HeaderValueInterceptorTests.java │ │ ├── RedirectLocationInterceptorTests.java │ │ ├── RequestContextLifecycleInterceptorTests.java │ │ ├── ResponseHeaderSecurityFilterTests.java │ │ ├── StatusMessageInterceptorTests.java │ │ └── impl │ │ │ └── BasicResponseImplTests.java │ │ ├── buffered │ │ └── BufferedRequestContextTests.java │ │ ├── dummy │ │ └── DummyRequestContextFactoryImpl.java │ │ ├── impl │ │ ├── AbstractCommittingAwareTests.java │ │ ├── CommittingAwarePrintWriterTests.java │ │ ├── CommittingAwareResponseTests.java │ │ ├── CommittingAwareServletOutputStreamTests.java │ │ ├── RequestContextCommitTests.java │ │ └── SimpleRequestContextTests.java │ │ ├── lazycommit │ │ └── LazyCommitRequestContextTests.java │ │ ├── locale │ │ ├── AbstractSetLocaleRequestContextTests.java │ │ ├── SetLocaleOverriderTests.java │ │ ├── SetLocaleRequestContextOverrideTests.java │ │ ├── SetLocaleRequestContextParamsTests.java │ │ └── SetLocaleRequestContextTests.java │ │ ├── parser │ │ ├── ParserRequestContextParamsTests.java │ │ ├── ParserRequestContextTests.java │ │ ├── ValueParserTests.java │ │ └── filter │ │ │ └── HTMLInputFilterTests.java │ │ ├── rewrite │ │ ├── RewriteRequestContextTests.java │ │ └── impl │ │ │ ├── FlagsTests.java │ │ │ └── RewriteUtilTests.java │ │ ├── rundata │ │ ├── BufferedRunDataTests.java │ │ └── RunDataTests.java │ │ ├── session │ │ ├── CookieStoreTests.java │ │ ├── SessionInterceptorTests.java │ │ ├── SessionRequestContextTests.java │ │ ├── SessionTests.java │ │ ├── encoder │ │ │ └── SessionEncoderTests.java │ │ ├── encrypter │ │ │ ├── AbstractEncrypterTests.java │ │ │ └── impl │ │ │ │ └── AesEncrypterTests.java │ │ ├── idgen │ │ │ ├── AbstractIDGeneratorTests.java │ │ │ ├── random │ │ │ │ └── impl │ │ │ │ │ └── RandomSessionIDGeneratorTests.java │ │ │ └── uuid │ │ │ │ └── impl │ │ │ │ └── UUIDGeneratorTests.java │ │ ├── impl │ │ │ ├── AbstractSessionModelEncoderTests.java │ │ │ ├── SessionModelEncoderTests.java │ │ │ └── StoreMappingTests.java │ │ ├── interceptor │ │ │ ├── AbstractSessionListenerTests.java │ │ │ ├── AttributeWhitelistTests.java │ │ │ └── LifecycleLoggerListenerTests.java │ │ └── valueencoder │ │ │ ├── AbstractSingleValueEncoderTests.java │ │ │ ├── MappedValuesEncoderTests.java │ │ │ └── SimpleValueEncoderTests.java │ │ ├── support │ │ └── ValueListSupportTests.java │ │ └── util │ │ ├── CookieSupportTests.java │ │ ├── QueryStringParserTests.java │ │ └── RequestContextUtilTests.java ├── resource │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── resource │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceFilter.java │ │ │ │ ├── ResourceFilterChain.java │ │ │ │ ├── ResourceLister.java │ │ │ │ ├── ResourceListerContext.java │ │ │ │ ├── ResourceLoader.java │ │ │ │ ├── ResourceLoaderContext.java │ │ │ │ ├── ResourceLoadingException.java │ │ │ │ ├── ResourceLoadingOption.java │ │ │ │ ├── ResourceLoadingService.java │ │ │ │ ├── ResourceMatchResult.java │ │ │ │ ├── ResourceNotFoundException.java │ │ │ │ ├── ResourceTrace.java │ │ │ │ ├── ResourceTraceElement.java │ │ │ │ ├── filter │ │ │ │ ├── XsltResourceFilter.java │ │ │ │ └── impl │ │ │ │ │ └── XsltResourceFilterDefinitionParser.java │ │ │ │ ├── impl │ │ │ │ ├── AbstractResourceLoadingContext.java │ │ │ │ ├── ResourceAlias.java │ │ │ │ ├── ResourceFilterMapping.java │ │ │ │ ├── ResourceListerContextImpl.java │ │ │ │ ├── ResourceLoaderContextImpl.java │ │ │ │ ├── ResourceLoaderMapping.java │ │ │ │ ├── ResourceLoadingServiceDefinitionParser.java │ │ │ │ ├── ResourceLoadingServiceImpl.java │ │ │ │ ├── ResourceMapping.java │ │ │ │ └── ResourcePattern.java │ │ │ │ ├── loader │ │ │ │ ├── ClasspathResourceLoader.java │ │ │ │ ├── FileResourceLoader.java │ │ │ │ ├── SuperResourceLoader.java │ │ │ │ ├── WebappResourceLoader.java │ │ │ │ └── impl │ │ │ │ │ ├── ClasspathResourceLoaderDefinitionParser.java │ │ │ │ │ ├── FileResourceLoaderDefinitionParser.java │ │ │ │ │ ├── SuperResourceLoaderDefinitionParser.java │ │ │ │ │ └── WebappResourceLoaderDefinitionParser.java │ │ │ │ └── support │ │ │ │ ├── ByteArrayResource.java │ │ │ │ ├── FileResource.java │ │ │ │ ├── InputStreamResource.java │ │ │ │ ├── ResourceAdapter.java │ │ │ │ ├── ResourceLoadingSupport.java │ │ │ │ ├── URLResource.java │ │ │ │ └── context │ │ │ │ ├── ResourceLoadingXmlApplicationContext.java │ │ │ │ └── ResourceLoadingXmlWebApplicationContext.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-resource-loading-filters.bean-definition-parsers │ │ │ ├── services-resource-loading-loaders.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── resource-loading.xsd │ │ │ └── resource-loading │ │ │ │ ├── filters │ │ │ │ └── xslt-filter.xsd │ │ │ │ └── loaders │ │ │ │ ├── classpath-loader.xsd │ │ │ │ ├── file-loader.xsd │ │ │ │ ├── super-loader.xsd │ │ │ │ └── webapp-loader.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── WEB-INF │ │ │ ├── aaa │ │ │ │ ├── bbb │ │ │ │ │ └── abc.txt │ │ │ │ └── ccc │ │ │ │ │ └── def.txt │ │ │ ├── resources.xml │ │ │ └── web.xml │ │ ├── app1 │ │ │ └── templates │ │ │ │ └── layout │ │ │ │ └── default.vm │ │ ├── appcontext │ │ │ ├── services-parent.xml │ │ │ ├── services1.xml │ │ │ └── services2.xml │ │ ├── beans.xml │ │ ├── common │ │ │ └── templates │ │ │ │ └── layout │ │ │ │ └── login.vm │ │ ├── filter │ │ │ └── xslt-filter.xml │ │ ├── loader │ │ │ ├── classpath-loader.xml │ │ │ ├── file-loader.xml │ │ │ ├── super-loader-parent.xml │ │ │ ├── super-loader.xml │ │ │ └── webapp-loader.xml │ │ ├── logback.xml │ │ ├── myfolder │ │ │ ├── abc.txt │ │ │ ├── def.txt │ │ │ ├── test.result │ │ │ ├── test.xml │ │ │ ├── test.xsl │ │ │ ├── test2.xml │ │ │ └── testres.txt │ │ ├── resources-root.xml │ │ ├── resources-skip-validation.xml │ │ └── test.txt │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── resource │ │ │ ├── AbstractResourceLoadingTests.java │ │ │ ├── ResourceLoadingServiceListTests.java │ │ │ ├── ResourceLoadingServiceSkipValidationTests.java │ │ │ ├── ResourceLoadingServiceStressTests.java │ │ │ ├── ResourceLoadingServiceTests.java │ │ │ ├── ResourceLoadingServiceTraceTests.java │ │ │ ├── SpringIntegrationTests.java │ │ │ ├── filter │ │ │ └── XsltFilterTests.java │ │ │ ├── loader │ │ │ ├── AbstractResourceLoaderTests.java │ │ │ ├── ClasspathLoaderIntegratingTests.java │ │ │ ├── ClasspathLoaderTests.java │ │ │ ├── FileLoaderIntegratingTests.java │ │ │ ├── FileLoaderTests.java │ │ │ ├── SuperLoaderIntegratingTests.java │ │ │ ├── WebappLoaderIntegratingTests.java │ │ │ └── WebappLoaderTests.java │ │ │ └── support │ │ │ ├── AbstractResourceTests.java │ │ │ ├── ByteArrayResourceTests.java │ │ │ ├── FileResourceTests.java │ │ │ ├── InputStreamResourceTests.java │ │ │ ├── URLResourceTests.java │ │ │ └── context │ │ │ └── ResourceLoadingXmlApplicationContextTests.java │ │ └── resources │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── resource │ │ └── support │ │ └── largeData.txt ├── template │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── template │ │ │ │ ├── Renderable.java │ │ │ │ ├── TemplateContext.java │ │ │ │ ├── TemplateEngine.java │ │ │ │ ├── TemplateException.java │ │ │ │ ├── TemplateNotFoundException.java │ │ │ │ ├── TemplateService.java │ │ │ │ ├── impl │ │ │ │ ├── DefaultExtensionStrategy.java │ │ │ │ ├── SearchExtensionsStrategy.java │ │ │ │ ├── SearchLocalizedTemplatesStrategy.java │ │ │ │ ├── TemplateKey.java │ │ │ │ ├── TemplateMatchResult.java │ │ │ │ ├── TemplateMatchResultImpl.java │ │ │ │ ├── TemplateMatcher.java │ │ │ │ ├── TemplateSearchingStrategy.java │ │ │ │ ├── TemplateServiceDefinitionParser.java │ │ │ │ └── TemplateServiceImpl.java │ │ │ │ └── support │ │ │ │ └── MappedTemplateContext.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ └── template.xsd │ │ │ └── spring.configuration-points │ │ └── test │ │ ├── config │ │ ├── template-cache.xml │ │ ├── template-dupExtensions.xml │ │ ├── template-noEngineName.xml │ │ ├── template-noExtension.xml │ │ ├── template.xml │ │ └── templates │ │ │ ├── dir1 │ │ │ ├── template1.vm │ │ │ ├── template2.vm │ │ │ └── template2_zh_CN.vm │ │ │ └── dir2 │ │ │ ├── template1.jsp │ │ │ └── template3_zh.jhtml │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── template │ │ ├── impl │ │ ├── SimpleEngine.java │ │ ├── TemplateKeyTests.java │ │ └── TemplateServiceTests.java │ │ └── support │ │ └── MappedTemplateContextTests.java ├── upload │ ├── .cvsignore │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── upload │ │ │ │ ├── UploadConfiguration.java │ │ │ │ ├── UploadException.java │ │ │ │ ├── UploadParameters.java │ │ │ │ ├── UploadService.java │ │ │ │ ├── UploadSizeLimitExceededException.java │ │ │ │ ├── impl │ │ │ │ ├── UploadServiceDefinitionParser.java │ │ │ │ ├── UploadServiceImpl.java │ │ │ │ └── cfu │ │ │ │ │ ├── AbstractFileItem.java │ │ │ │ │ ├── DiskFileItem.java │ │ │ │ │ ├── DiskFileItemFactory.java │ │ │ │ │ ├── InMemoryFormFieldItem.java │ │ │ │ │ ├── ServletFileUpload.java │ │ │ │ │ └── ServletRequestContext.java │ │ │ │ └── support │ │ │ │ └── StringFileItemEditor.java │ │ └── resources │ │ │ ├── META-INF │ │ │ ├── services.bean-definition-parsers │ │ │ └── services │ │ │ │ ├── upload-examples.xml │ │ │ │ └── upload.xsd │ │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── upload │ │ │ └── impl │ │ │ └── cfu │ │ │ └── package.html │ │ └── test │ │ ├── config │ │ ├── form.html │ │ ├── services-skip-validation.xml │ │ ├── services.xml │ │ └── smallfile.txt │ │ └── java │ │ └── com │ │ ├── alibaba │ │ └── citrus │ │ │ └── service │ │ │ └── upload │ │ │ ├── UploadServiceSkipValidationTests.java │ │ │ └── UploadServiceTests.java │ │ └── meterware │ │ └── servletunit │ │ └── UploadServletRunner.java ├── uribroker │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── citrus │ │ │ │ └── service │ │ │ │ └── uribroker │ │ │ │ ├── URIBrokerService.java │ │ │ │ ├── URIBrokerServiceException.java │ │ │ │ ├── impl │ │ │ │ ├── URIBrokerServiceDefinitionParser.java │ │ │ │ ├── URIBrokerServiceImpl.java │ │ │ │ ├── interceptor │ │ │ │ │ └── RandomizeHandlerDefinitionParser.java │ │ │ │ └── uri │ │ │ │ │ ├── ContentURIBrokerDefinitionParser.java │ │ │ │ │ ├── GenericServletURIBrokerDefinitionParser.java │ │ │ │ │ ├── GenericURIBrokerDefinitionParser.java │ │ │ │ │ ├── ServletContentURIBrokerDefinitionParser.java │ │ │ │ │ └── TurbineClassicURIBrokerDefinitionParser.java │ │ │ │ ├── interceptor │ │ │ │ ├── Randomize.java │ │ │ │ ├── URIBrokerInterceptor.java │ │ │ │ └── URIBrokerPathInterceptor.java │ │ │ │ ├── support │ │ │ │ ├── AbstractURIBrokerDefinitionParser.java │ │ │ │ └── URIBrokerTool.java │ │ │ │ └── uri │ │ │ │ ├── ContentURIBroker.java │ │ │ │ ├── GenericServletURIBroker.java │ │ │ │ ├── GenericURIBroker.java │ │ │ │ ├── ServletContentURIBroker.java │ │ │ │ ├── ServletURIBroker.java │ │ │ │ ├── TurbineClassicURIBroker.java │ │ │ │ ├── URIBroker.java │ │ │ │ ├── URIBrokerFeatures.java │ │ │ │ └── WebAppURIBroker.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── services-pull-factories.bean-definition-parsers │ │ │ ├── services-uris-interceptors.bean-definition-parsers │ │ │ ├── services-uris.bean-definition-parsers │ │ │ ├── services.bean-definition-parsers │ │ │ ├── services │ │ │ ├── pull │ │ │ │ └── factories │ │ │ │ │ └── uris-tool.xsd │ │ │ ├── uris.xsd │ │ │ └── uris │ │ │ │ ├── content-uri.xsd │ │ │ │ ├── interceptors │ │ │ │ └── randomize.xsd │ │ │ │ ├── servlet-content-uri.xsd │ │ │ │ ├── servlet-uri.xsd │ │ │ │ ├── turbine-classic-uri.xsd │ │ │ │ ├── uri-bean.xsd │ │ │ │ ├── uri.xsd │ │ │ │ └── uris-base.xsd │ │ │ ├── spring.configuration-points │ │ │ └── spring.schemas │ │ └── test │ │ ├── config │ │ ├── WEB-INF │ │ │ └── web.xml │ │ ├── services-root.xml │ │ ├── services-uri-skip-validation.xml │ │ ├── services.xml │ │ └── services2.xml │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── uribroker │ │ ├── AbstractURIBrokerServiceTests.java │ │ ├── ContentURIBrokerConfigTests.java │ │ ├── ServletContentURIBrokerConfigTests.java │ │ ├── ServletURIBrokerConfigTests.java │ │ ├── TurbineClassicURIBrokerConfigTests.java │ │ ├── URIBrokerConfigTests.java │ │ ├── URIBrokerSkipValidationTests.java │ │ ├── impl │ │ └── URIBrokerServiceTests.java │ │ ├── interceptor │ │ ├── InterceptorForkTests.java │ │ ├── MyInterceptor.java │ │ ├── MyPathInterceptor.java │ │ └── RandomizeTests.java │ │ ├── support │ │ └── URIBrokerToolTests.java │ │ └── uri │ │ ├── AbstractURIBrokerFeaturesTests.java │ │ ├── ContentURIBrokerTests.java │ │ ├── GenericServletURIBrokerTests.java │ │ ├── GenericURIBrokerTests.java │ │ ├── ServletContentURIBrokerTests.java │ │ ├── TurbineClassicURIBrokerTests.java │ │ └── URIBrokerPrerenderingPerformanceTests.java └── velocity │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── service │ │ │ └── velocity │ │ │ ├── FastCloneable.java │ │ │ ├── VelocityConfiguration.java │ │ │ ├── VelocityEngine.java │ │ │ ├── VelocityPlugin.java │ │ │ ├── impl │ │ │ ├── AbstractResourceLoader.java │ │ │ ├── CloneableEventCartridge.java │ │ │ ├── CustomizedUberspectImpl.java │ │ │ ├── EscapeSupportDefinitionParser.java │ │ │ ├── PreloadedResourceLoader.java │ │ │ ├── RenderableHandlerDefinitionParser.java │ │ │ ├── Slf4jLogChute.java │ │ │ ├── SpringResourceLoaderAdapter.java │ │ │ ├── TemplateContextAdapter.java │ │ │ ├── VelocityConfigurationImpl.java │ │ │ ├── VelocityEngineDefinitionParser.java │ │ │ ├── VelocityEngineImpl.java │ │ │ ├── VelocityRuntimeInstance.java │ │ │ └── parser │ │ │ │ ├── ASTStringLiteralEnhanced.java │ │ │ │ └── SimpleNodeUtil.java │ │ │ └── support │ │ │ ├── EscapeSupport.java │ │ │ ├── InterpolationUtil.java │ │ │ └── RenderableHandler.java │ └── resources │ │ ├── META-INF │ │ ├── services-template-engines-velocity-plugins.bean-definition-parsers │ │ ├── services-template-engines.bean-definition-parsers │ │ ├── services │ │ │ └── template │ │ │ │ └── engines │ │ │ │ ├── velocity-engine.xsd │ │ │ │ └── velocity │ │ │ │ └── plugins │ │ │ │ ├── escape-support.xsd │ │ │ │ └── renderable-support.xsd │ │ └── spring.configuration-points │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── velocity │ │ └── support │ │ └── escape_macros.vm │ └── test │ ├── config │ ├── services-skip-validation.xml │ ├── services.xml │ ├── services_dev.xml │ ├── services_empty_property.xml │ ├── services_escape.xml │ ├── services_renderable.xml │ ├── templates │ │ ├── escape │ │ │ ├── test_escape.vm │ │ │ ├── test_escape_all_types.vm │ │ │ ├── test_escape_define.vm │ │ │ ├── test_escape_interpolation.vm │ │ │ ├── test_escape_macros.vm │ │ │ ├── test_escape_object_noescape.vm │ │ │ ├── test_escape_parse.vm │ │ │ ├── test_escape_parse_sub.vm │ │ │ ├── test_escape_rules.vm │ │ │ ├── test_escape_wrong_args_0.vm │ │ │ ├── test_escape_wrong_args_1.vm │ │ │ ├── test_escape_wrong_args_2.vm │ │ │ └── test_escape_wrong_type.vm │ │ ├── macros │ │ │ ├── hello.vm │ │ │ ├── inner │ │ │ │ └── hello.vm │ │ │ └── world.vm │ │ ├── test.vm │ │ ├── test2.vm │ │ ├── test_handlers.vm │ │ ├── test_local_context.vm │ │ ├── test_macros.vm │ │ ├── test_pluginMacros.vm │ │ ├── test_render.vm │ │ ├── test_render_error.vm │ │ ├── test_renderable.vm │ │ └── test_set_null.vm │ └── templates_with_macros │ │ ├── VM_global_library.vm │ │ └── test_macros.vm │ ├── java │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── service │ │ └── velocity │ │ ├── AbstractResourceLoaderTests.java │ │ ├── AbstractVelocityEngineTests.java │ │ ├── CloneableEventCartridgeTests.java │ │ ├── CustomizedUberspectTests.java │ │ ├── PreloadedResourceLoaderTests.java │ │ ├── Slf4jLogChuteTests.java │ │ ├── SpringResourceLoaderAdapterTests.java │ │ ├── TemplateContextAdapaterTests.java │ │ ├── VelocityEngineTests.java │ │ ├── VelocitySkipValidationTests.java │ │ ├── impl │ │ ├── ConditionalEscapeHandler.java │ │ └── PluginDelegator.java │ │ └── support │ │ ├── EscapeTests.java │ │ └── RenderableTests.java │ └── resources │ └── com │ └── alibaba │ └── citrus │ └── service │ └── velocity │ └── impl │ ├── plugin_macro1.vm │ └── plugin_macro2.vm ├── test ├── util │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ ├── alibaba │ │ │ │ └── citrus │ │ │ │ │ └── test │ │ │ │ │ ├── ExceptionMatcher.java │ │ │ │ │ ├── RegexMatcher.java │ │ │ │ │ ├── TestEnv.java │ │ │ │ │ ├── TestEnvStatic.java │ │ │ │ │ ├── TestUtil.java │ │ │ │ │ └── runner │ │ │ │ │ ├── Prototyped.java │ │ │ │ │ └── TestNameAware.java │ │ │ │ └── meterware │ │ │ │ ├── httpunit │ │ │ │ └── cookies │ │ │ │ │ └── PatchedCookieJar.java │ │ │ │ └── servletunit │ │ │ │ ├── PatchedInvocationContextImpl.java │ │ │ │ ├── PatchedServletContext.java │ │ │ │ ├── PatchedServletRunner.java │ │ │ │ ├── PatchedServletUnitWebResponse.java │ │ │ │ └── PatchedWebApplication.java │ │ └── resources │ │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── test │ │ │ └── logback-test-default.xml │ │ └── test │ │ ├── config │ │ └── dummy.txt │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── test │ │ ├── PrototypedTests.java │ │ ├── TestEnvStaticTests.java │ │ ├── TestEnvTests.java │ │ ├── TestNameAwareTests.java │ │ └── TestUtilTests.java └── webx │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── test │ │ │ ├── context │ │ │ ├── AbstractContextLoader.java │ │ │ └── SpringextContextLoader.java │ │ │ └── util │ │ │ └── ServletTestContainer.java │ └── resources │ │ ├── META-INF │ │ ├── services.bean-definition-parsers │ │ └── services │ │ │ └── servlet-test-container.xsd │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── test │ │ └── context │ │ ├── context-template.xml │ │ └── test-resources.xml │ └── test │ ├── config │ ├── springextContextLoaderTests-context.xml │ └── springextWebContextLoaderTests-context.xml │ └── java │ └── com │ └── alibaba │ └── citrus │ └── test │ └── context │ ├── MyBean.java │ ├── MyServlet.java │ ├── SpringextContextLoaderTests.java │ └── SpringextWebContextLoaderTests.java └── webx ├── async ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── async │ │ │ ├── AsyncCallback.java │ │ │ └── pipeline │ │ │ └── valve │ │ │ ├── AsyncCallbackAdapter.java │ │ │ ├── DoPerformRunnableValve.java │ │ │ └── PerformRunnableAsyncValve.java │ └── resources │ │ └── META-INF │ │ ├── services-pipeline-valves.bean-definition-parsers │ │ └── services │ │ └── pipeline │ │ └── valves │ │ ├── doPerformRunnable.xsd │ │ └── performRunnableAsync.xsd │ └── test │ ├── config │ ├── doPerformRunnableValve.xml │ ├── doPerformRunnableValveConfig.xml │ ├── performRunnableAsyncValve.xml │ ├── performRunnableAsyncValveConfig-noExecutor.xml │ └── performRunnableAsyncValveConfig.xml │ └── java │ └── com │ └── alibaba │ └── citrus │ └── async │ ├── AbstractAsyncTests.java │ ├── DoPerformRunnableValveConfigTests.java │ ├── DoPerformRunnableValveTests.java │ ├── PerformRunnableAsyncValveConfigTests.java │ ├── PerformRunnableAsyncValveTests.java │ └── support │ ├── FakeAsyncExecutor.java │ ├── GetScreenResult.java │ ├── RequestProxyTester.java │ └── SetScreenResult.java ├── dev ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── dev │ │ └── handler │ │ ├── component │ │ ├── AccessControlComponent.java │ │ ├── DomComponent.java │ │ └── TabsComponent.java │ │ ├── impl │ │ ├── AbstractExplorerHandler.java │ │ ├── ExplorerHandler.java │ │ └── visitor │ │ │ ├── AbstractFallbackVisitor.java │ │ │ ├── BeansVisitor.java │ │ │ ├── ConfigurationsVisitor.java │ │ │ ├── PullToolsVisitor.java │ │ │ ├── ResolvableDepsVisitor.java │ │ │ ├── ResourcesVisitor.java │ │ │ └── UrisVisitor.java │ │ └── util │ │ ├── AnchorValue.java │ │ ├── Attribute.java │ │ ├── BeanDefinitionReverseEngine.java │ │ ├── ClassValue.java │ │ ├── ConfigurationFile.java │ │ ├── ConfigurationFileReader.java │ │ ├── DomUtil.java │ │ ├── Element.java │ │ ├── RawValue.java │ │ ├── RefValue.java │ │ ├── ReflectionUtil.java │ │ ├── StyledValue.java │ │ └── TextValue.java │ └── resources │ ├── META-INF │ └── webx.internal-request-handlers │ └── com │ └── alibaba │ └── citrus │ └── dev │ └── handler │ ├── component │ ├── accessControl.css │ ├── accessControl.htm │ ├── dom.css │ ├── dom.htm │ ├── dom.js │ ├── images │ │ ├── arrow_tab.gif │ │ ├── close.png │ │ └── open.png │ ├── tabs.css │ └── tabs.htm │ └── impl │ ├── explorer.css │ ├── explorer.htm │ ├── explorer.js │ ├── images │ ├── close.png │ └── open.png │ └── inc │ ├── beans.htm │ ├── configurations.htm │ ├── deps.htm │ ├── pullTools.htm │ ├── resources.htm │ └── uris.htm ├── framework ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── citrus │ │ │ └── webx │ │ │ ├── BadRequestException.java │ │ │ ├── ResourceNotFoundException.java │ │ │ ├── WebxComponent.java │ │ │ ├── WebxComponents.java │ │ │ ├── WebxConstant.java │ │ │ ├── WebxController.java │ │ │ ├── WebxException.java │ │ │ ├── WebxRootController.java │ │ │ ├── config │ │ │ ├── WebxConfiguration.java │ │ │ └── impl │ │ │ │ ├── WebxConfigurationDefinitionParser.java │ │ │ │ └── WebxConfigurationImpl.java │ │ │ ├── context │ │ │ ├── WebxApplicationContext.java │ │ │ ├── WebxComponentContext.java │ │ │ ├── WebxComponentsContext.java │ │ │ ├── WebxComponentsLoader.java │ │ │ └── WebxContextLoaderListener.java │ │ │ ├── handler │ │ │ ├── ErrorHandlerMapping.java │ │ │ ├── RequestHandler.java │ │ │ ├── RequestHandlerContext.java │ │ │ ├── RequestHandlerMapping.java │ │ │ ├── RequestHandlerNameAware.java │ │ │ ├── component │ │ │ │ ├── EnvironmentVariablesComponent.java │ │ │ │ ├── ExceptionComponent.java │ │ │ │ ├── FooterComponent.java │ │ │ │ ├── KeyValuesComponent.java │ │ │ │ ├── MenuComponent.java │ │ │ │ ├── RequestComponent.java │ │ │ │ ├── SystemInfoComponent.java │ │ │ │ └── SystemPropertiesComponent.java │ │ │ ├── impl │ │ │ │ ├── MainHandler.java │ │ │ │ ├── SchemaExporterHandler.java │ │ │ │ ├── error │ │ │ │ │ ├── DetailedErrorHandler.java │ │ │ │ │ ├── PipelineErrorHandler.java │ │ │ │ │ └── SendErrorHandler.java │ │ │ │ └── info │ │ │ │ │ ├── EnvironmentVariablesHandler.java │ │ │ │ │ ├── RequestInfoHandler.java │ │ │ │ │ ├── SystemInfoHandler.java │ │ │ │ │ └── SystemPropertiesHandler.java │ │ │ └── support │ │ │ │ ├── AbstractVisitor.java │ │ │ │ ├── AutowiredRequestProcessor.java │ │ │ │ └── LayoutRequestProcessor.java │ │ │ ├── impl │ │ │ ├── WebxControllerImpl.java │ │ │ └── WebxRootControllerImpl.java │ │ │ ├── servlet │ │ │ ├── FilterBean.java │ │ │ ├── PassThruSupportable.java │ │ │ ├── SetLoggingContextFilter.java │ │ │ └── WebxFrameworkFilter.java │ │ │ ├── support │ │ │ ├── AbstractWebxController.java │ │ │ └── AbstractWebxRootController.java │ │ │ └── util │ │ │ ├── ErrorHandlerHelper.java │ │ │ ├── RequestURIFilter.java │ │ │ ├── SetLoggingContextHelper.java │ │ │ └── WebxUtil.java │ └── resources │ │ ├── META-INF │ │ ├── services.bean-definition-parsers │ │ ├── services │ │ │ └── webx-configuration.xsd │ │ └── webx.internal-request-handlers │ │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── webx │ │ └── handler │ │ ├── component │ │ ├── environmentVariables.css │ │ ├── environmentVariables.htm │ │ ├── exception.css │ │ ├── exception.htm │ │ ├── exception.js │ │ ├── footer.css │ │ ├── footer.htm │ │ ├── images │ │ │ ├── arrow_h.gif │ │ │ ├── arrow_h_active.gif │ │ │ ├── arrow_v.gif │ │ │ ├── arrow_v_active.gif │ │ │ ├── close.gif │ │ │ ├── home1.gif │ │ │ ├── home2.gif │ │ │ ├── open.gif │ │ │ └── webx3.gif │ │ ├── keyValues.css │ │ ├── keyValues.htm │ │ ├── keyValues.js │ │ ├── menu.css │ │ ├── menu.htm │ │ ├── request.css │ │ ├── request.htm │ │ ├── systemInfo.css │ │ ├── systemInfo.htm │ │ ├── systemProperties.css │ │ └── systemProperties.htm │ │ ├── impl │ │ ├── error │ │ │ └── detailedError.htm │ │ ├── head.htm │ │ ├── info │ │ │ ├── environmentVariables.htm │ │ │ ├── requestInfo.htm │ │ │ ├── systemInfo.htm │ │ │ └── systemProperties.htm │ │ └── main.htm │ │ └── support │ │ ├── layout.htm │ │ └── styles.css │ └── test │ ├── config │ ├── WEB-INF │ │ ├── web.xml │ │ ├── webx-app1.xml │ │ ├── webx-app2.xml │ │ ├── webx-app3.xml │ │ ├── webx-app4.xml │ │ ├── webx-app5.xml │ │ └── webx.xml │ ├── app1 │ │ └── plaintext.txt │ ├── app2 │ │ └── WEB-INF │ │ │ ├── web.xml │ │ │ └── webx.xml │ ├── app3 │ │ └── WEB-INF │ │ │ ├── web.xml │ │ │ └── webx.xml │ ├── app4 │ │ └── WEB-INF │ │ │ ├── web.xml │ │ │ └── webx.xml │ ├── my │ │ └── app5 │ │ │ └── plaintext.txt │ ├── plaintext.txt │ ├── webx-configuration-skip-validation.xml │ └── webx-configuration.xml │ ├── java │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── webx │ │ ├── AbstractWebxTests.java │ │ ├── config │ │ ├── MyBean.java │ │ ├── WebxConfigurationSkipValidationTests.java │ │ └── WebxConfigurationTests.java │ │ ├── handler │ │ ├── ErrorHandlerTests.java │ │ ├── Handler1.java │ │ ├── Handler2.java │ │ ├── Handler3.java │ │ ├── InfoHandlerTests.java │ │ ├── MainHandlerTests.java │ │ └── SchemaRequestHandlerTests.java │ │ ├── pipeline │ │ ├── TestExceptionValve.java │ │ ├── TestValve.java │ │ └── ValveRunner.java │ │ ├── servlet │ │ ├── FilterBeanTests.java │ │ ├── WebxClasspathTests.java │ │ ├── WebxFrameworkFilterTests.java │ │ └── WebxRootControllerTests.java │ │ └── util │ │ ├── ErrorHandlerHelperTests.java │ │ ├── RequestURIFilterTests.java │ │ ├── SetLoggingContextHelperTests.java │ │ └── WebxUtilTests.java │ └── resources │ └── META-INF │ ├── internal-request-handlers-test-1 │ └── mycomponent │ ├── a.xml │ └── b.xml └── turbine ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── alibaba │ │ └── citrus │ │ └── turbine │ │ ├── Context.java │ │ ├── ControlParameters.java │ │ ├── Navigator.java │ │ ├── TurbineConstant.java │ │ ├── TurbineRunData.java │ │ ├── TurbineRunDataInternal.java │ │ ├── auth │ │ ├── PageAuthorizationService.java │ │ └── impl │ │ │ ├── AuthActionPattern.java │ │ │ ├── AuthGrant.java │ │ │ ├── AuthMatch.java │ │ │ ├── AuthPattern.java │ │ │ ├── AuthTargetPattern.java │ │ │ ├── PageAuthorizationServiceDefinitionParser.java │ │ │ └── PageAuthorizationServiceImpl.java │ │ ├── dataresolver │ │ ├── ContextValue.java │ │ ├── FormData.java │ │ ├── FormField.java │ │ ├── FormFields.java │ │ ├── FormGroup.java │ │ ├── FormGroups.java │ │ ├── Param.java │ │ ├── Params.java │ │ └── impl │ │ │ ├── AbstractDataResolver.java │ │ │ ├── DataResolverUtil.java │ │ │ ├── FormResolverFactory.java │ │ │ ├── ParameterResolverFactory.java │ │ │ └── TurbineRunDataResolverFactory.java │ │ ├── form │ │ └── impl │ │ │ └── validation │ │ │ └── CsrfFormValidator.java │ │ ├── pipeline │ │ ├── condition │ │ │ ├── AbstractTurbineCondition.java │ │ │ ├── PathCondition.java │ │ │ ├── TargetCondition.java │ │ │ └── TargetExtensionCondition.java │ │ └── valve │ │ │ ├── AbstractInputOutputValve.java │ │ │ ├── AnalyzeURLValve.java │ │ │ ├── BreakUnlessTargetRedirectedValve.java │ │ │ ├── CheckCsrfTokenValve.java │ │ │ ├── ExportControlValve.java │ │ │ ├── GetResourceValve.java │ │ │ ├── HandleExceptionValve.java │ │ │ ├── PageAuthorizationValve.java │ │ │ ├── PerformActionValve.java │ │ │ ├── PerformScreenValve.java │ │ │ ├── PerformTemplateScreenValve.java │ │ │ ├── PrepareForTurbineValve.java │ │ │ ├── RenderResultAsJsonValve.java │ │ │ ├── RenderTemplateValve.java │ │ │ ├── RequestHandlerValve.java │ │ │ ├── SetBufferingValve.java │ │ │ └── SetLoggingContextValve.java │ │ ├── support │ │ ├── AbstractContext.java │ │ ├── ContextAdapter.java │ │ ├── MappedContext.java │ │ ├── PullableMappedContext.java │ │ └── TurbineRunDataImpl.java │ │ ├── uribroker │ │ └── uri │ │ │ ├── TurbineContentURIBroker.java │ │ │ ├── TurbineURIBroker.java │ │ │ ├── WebxURIBroker.java │ │ │ └── impl │ │ │ ├── TurbineContentURIBrokerDefinitionParser.java │ │ │ └── TurbineURIBrokerDefinitionParser.java │ │ └── util │ │ ├── ControlTool.java │ │ ├── CsrfToken.java │ │ ├── CsrfTokenCheckException.java │ │ ├── HtmlPageAttributeTool.java │ │ ├── TurbineRunDataTool.java │ │ └── TurbineUtil.java └── resources │ └── META-INF │ ├── services-data-resolver-factories.bean-definition-parsers │ ├── services-form-validators.bean-definition-parsers │ ├── services-pipeline-conditions.bean-definition-parsers │ ├── services-pipeline-valves.bean-definition-parsers │ ├── services-pull-factories.bean-definition-parsers │ ├── services-uris.bean-definition-parsers │ ├── services.bean-definition-parsers │ └── services │ ├── data-resolver │ └── factories │ │ ├── form-resolver.xsd │ │ ├── parameter-resolver.xsd │ │ └── turbine-rundata-resolver.xsd │ ├── form │ └── validators │ │ └── csrf-validator.xsd │ ├── page-authorization.xsd │ ├── pipeline │ ├── conditions │ │ ├── path-condition.xsd │ │ ├── target-condition.xsd │ │ └── target-extension-condition.xsd │ └── valves │ │ ├── analyzeURL.xsd │ │ ├── breakUnlessTargetRedirected.xsd │ │ ├── checkCsrfToken.xsd │ │ ├── exportControl.xsd │ │ ├── getResource.xsd │ │ ├── handleException.xsd │ │ ├── pageAuthorization.xsd │ │ ├── performAction.xsd │ │ ├── performScreen.xsd │ │ ├── performTemplateScreen.xsd │ │ ├── prepareForTurbine.xsd │ │ ├── renderResultAsJson.xsd │ │ ├── renderTemplate.xsd │ │ ├── requestHandler.xsd │ │ ├── setBuffering.xsd │ │ └── setLoggingContext.xsd │ ├── pull │ └── factories │ │ ├── control-tool.xsd │ │ ├── csrfToken.xsd │ │ ├── page-tool.xsd │ │ └── rundata-tool.xsd │ └── uris │ ├── turbine-content-uri.xsd │ └── turbine-uri.xsd └── test ├── config ├── WEB-INF │ ├── web.xml │ ├── webx-app1.xml │ ├── webx-app2.xml │ ├── webx-app3.xml │ └── webx.xml ├── dataresolver │ └── services-dataresolver.xml ├── page-auth.xml ├── services-uris-no-mappings.xml ├── services-uris.xml ├── templates │ ├── app2 │ │ └── control │ │ │ ├── control_set.vm │ │ │ └── myControl.vm │ ├── control │ │ ├── control_nest.vm │ │ ├── control_set.vm │ │ ├── myControl.vm │ │ ├── myOtherControl.vm │ │ └── nestedControl.vm │ ├── mylayout │ │ ├── aaa │ │ │ ├── bbb │ │ │ │ ├── default.vm │ │ │ │ ├── myModule.vm │ │ │ │ └── myOtherModule.vm │ │ │ └── default.vm │ │ └── ccc │ │ │ └── default.vm │ ├── myprefix.locale │ │ ├── aaa │ │ │ ├── bbb │ │ │ │ ├── default.vm │ │ │ │ ├── default_zh_TW.jsp │ │ │ │ └── myOtherModule_zh.vm │ │ │ ├── default.vm │ │ │ └── default_zh.jsp │ │ └── ccc │ │ │ └── default_zh.vm │ └── myscreen │ │ └── aaa │ │ └── bbb │ │ └── myModule.vm └── test.txt ├── java └── com │ └── alibaba │ ├── citrus │ └── turbine │ │ ├── AbstractWebTests.java │ │ ├── AbstractWebxTests.java │ │ ├── auth │ │ ├── AuthActionPatternTests.java │ │ ├── AuthGrantTests.java │ │ ├── AuthMatchTests.java │ │ ├── AuthTargetPatternTests.java │ │ ├── PageAuthorizationConfigTests.java │ │ └── PageAuthorizationServiceTests.java │ │ ├── dataresolver │ │ ├── AbstractDataResolverTests.java │ │ ├── ContextValueResolverTests.java │ │ ├── FormFieldResolverTests.java │ │ ├── FormFieldsResolverTests.java │ │ ├── FormGroupResolverTests.java │ │ ├── FormGroupsResolverTests.java │ │ ├── FormResolverTests.java │ │ ├── ParameterResolverTests.java │ │ ├── ParametersResolverTests.java │ │ ├── TurbineRunDataResolverTests.java │ │ └── impl │ │ │ └── DataResolverUtilTests.java │ │ ├── pipeline │ │ ├── PipelineSkipValidationTests.java │ │ └── valve │ │ │ ├── AbstractValveTests.java │ │ │ ├── AnalyzeURLValveTests.java │ │ │ ├── CheckCsrfTokenValveTests.java │ │ │ ├── HandleExceptionValveTests.java │ │ │ ├── InputOutputValveTests.java │ │ │ ├── MySpringHandler.java │ │ │ ├── MyValve.java │ │ │ ├── PageAuthorizationValveTests.java │ │ │ ├── PathConditionTests.java │ │ │ ├── PerformActionValveTests.java │ │ │ ├── PerformScreenValveTests.java │ │ │ ├── PerformTemplateScreenValveTests.java │ │ │ ├── PrepareForTurbineValveTests.java │ │ │ ├── RenderResultAsJsonValveTests.java │ │ │ ├── RenderTemplateValveTests.java │ │ │ ├── RequestHandlerValveTests.java │ │ │ ├── SetBufferingValveTests.java │ │ │ └── TargetConditionTests.java │ │ ├── support │ │ ├── HierarchicalContextTests.java │ │ ├── MappedContextTests.java │ │ ├── NavigatorTests.java │ │ ├── PullableMappedContextTests.java │ │ └── TurbineRunDataTests.java │ │ ├── uribroker │ │ └── uri │ │ │ └── impl │ │ │ ├── TurbineContentURIBrokerTests.java │ │ │ └── TurbineURIBrokerTests.java │ │ └── util │ │ ├── AbstractPullToolTests.java │ │ ├── ControlToolExportAllTests.java │ │ ├── ControlToolProductionModeTests.java │ │ ├── ControlToolTests.java │ │ ├── CsrfTokenTests.java │ │ ├── PageToolTests.java │ │ └── RunDataToolTests.java │ ├── test │ ├── app1 │ │ ├── Failure.java │ │ └── module │ │ │ ├── action │ │ │ └── aaa │ │ │ │ └── bbb │ │ │ │ ├── Default.java │ │ │ │ └── MyOtherAction.java │ │ │ ├── control │ │ │ ├── MyControl.java │ │ │ ├── MyControlChangingTemplate.java │ │ │ ├── MyControlContextValue.java │ │ │ ├── MyControlNoTemplate.java │ │ │ └── MyControlWithError.java │ │ │ └── screen │ │ │ ├── MyJsonScreen.java │ │ │ ├── aaa │ │ │ ├── Default.java │ │ │ └── bbb │ │ │ │ ├── Default.java │ │ │ │ └── MyOtherModule.java │ │ │ ├── ccc │ │ │ └── Default.java │ │ │ └── ddd │ │ │ └── eee │ │ │ ├── MyEventScreen.java │ │ │ └── MyScreen.java │ ├── app2 │ │ └── module │ │ │ └── control │ │ │ ├── MyControl.java │ │ │ └── MyControlNoTemplate.java │ └── module │ │ └── screen │ │ ├── AbstractModule.java │ │ └── MyDefaultModule.java │ └── test2 │ └── module │ ├── action │ ├── context │ │ ├── MyAction.java │ │ └── MyActionWrong.java │ ├── form │ │ ├── MyAction.java │ │ ├── MyActionWrongType.java │ │ ├── MyData.java │ │ ├── field │ │ │ └── MyAction.java │ │ ├── fields │ │ │ └── MyAction.java │ │ ├── group │ │ │ ├── MyAction.java │ │ │ └── MyActionErrorNoName.java │ │ └── groups │ │ │ ├── MyAction.java │ │ │ └── MyActionErrorNoName.java │ ├── param │ │ ├── MyAction.java │ │ ├── MyActionErrorDefaultValueAndDefaultValues.java │ │ └── MyActionErrorNoName.java │ ├── params │ │ ├── MyAction.java │ │ └── MyActionAbstract.java │ └── rundata │ │ └── MyAction.java │ ├── control │ └── rundata │ │ └── MyControl.java │ └── screen │ └── form │ ├── MyScreen.java │ ├── field │ ├── MyScreen.java │ └── MyScreenGetFieldInstanceValue.java │ ├── fields │ ├── MyScreen.java │ └── MyScreenGetFieldsBeans.java │ ├── group │ ├── MyScreen.java │ └── MyScreenGetGroupInstanceBean.java │ └── groups │ ├── MyScreen.java │ └── MyScreenGetGroupsBeans.java └── resources └── app1 ├── Failure.groovy └── module ├── action └── myprod │ └── MyAction.groovy ├── control └── myprod │ └── MyControl.groovy └── screens ├── AbstractScreen.groovy └── MyScreen.groovy /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | target 3 | dependency-reduced-pom.xml 4 | .settings 5 | .project 6 | .classpath 7 | .svn 8 | 9 | *.iml 10 | /out 11 | /.idea/ant.xml 12 | /.idea/misc.xml 13 | /.idea/workspace.xml 14 | /.idea/modules.xml 15 | /.idea/compiler.xml 16 | /.idea/libraries/Maven*.xml 17 | /.idea/artifacts/*.xml 18 | /*.iws 19 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | citrus -------------------------------------------------------------------------------- /.idea/dictionaries/baobao.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | baobao 5 | csrf 6 | dataresolver 7 | lcrc 8 | passthru 9 | rundata 10 | springext 11 | springframework 12 | thru 13 | uribroker 14 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/scopes/Webx_Codes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /common/generictype/docs/generic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/generictype/docs/generic.png -------------------------------------------------------------------------------- /common/generictype/docs/generic.zargo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/generictype/docs/generic.zargo -------------------------------------------------------------------------------- /common/generictype/src/main/java.working/com/alibaba/citrus/generictype/introspect/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

Package com.alibaba.citrus.generictype.introspect中,包含了分析类型内部结构的工具,例如,取得类型的properties。

8 | 9 | 10 | -------------------------------------------------------------------------------- /common/generictype/src/main/java/com/alibaba/citrus/generictype/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

Package com.alibaba.citrus.generictype中,包含了分析generic类型的工具。

8 | 9 | 10 | -------------------------------------------------------------------------------- /common/generictype/src/test/java/com/alibaba/citrus/generictype/demo/dao/PersonDao.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.generictype.demo.dao; 19 | 20 | public class PersonDao extends GenericDao { 21 | } 22 | -------------------------------------------------------------------------------- /common/logconfig/src/main/resources/META-INF/logconfig.providers: -------------------------------------------------------------------------------- 1 | logback=com.alibaba.citrus.logconfig.logback.LogbackConfigurator 2 | log4j=com.alibaba.citrus.logconfig.log4j.Log4jConfigurator 3 | -------------------------------------------------------------------------------- /common/logconfig/src/test/config/WEB-INF/web2.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | logSystem 10 | log4j, logback 11 | 12 | 13 | 14 | servlet 15 | com.alibaba.citrus.logconfig.AbstractLogConfiguratorListenerTests$MyServlet 16 | 17 | 18 | 19 | servlet 20 | /servlet 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /common/logconfig/src/test/resources/META-INF/logconfig.providers: -------------------------------------------------------------------------------- 1 | abstract=com.alibaba.citrus.logconfig.spi.AbstractLogConfigurator 2 | cnf=NotExistClass 3 | string=java.lang.String 4 | nodefault=com.alibaba.citrus.logconfig.spi.MyLogConfigurator 5 | ok=com.alibaba.citrus.logconfig.spi.MyLogConfigurator -------------------------------------------------------------------------------- /common/logconfig/src/test/resources/META-INF/my-log4j.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /common/logconfig/src/test/resources/META-INF/my-logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | System.out 5 | ${loggingCharset} 6 | 7 | %msg%n 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /common/logconfig/src/test/resources/com/alibaba/citrus/logconfig/spi/ok-default.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/logconfig/src/test/resources/com/alibaba/citrus/logconfig/spi/ok-default.xml -------------------------------------------------------------------------------- /common/springext/src/main/java/com/alibaba/citrus/springext/Namespaces.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.citrus.springext; 2 | 3 | import java.util.Set; 4 | 5 | /** 6 | * 如果一个Schemas同时实现这个接口,那么可以从中取得所有的namespace列表。 7 | * 8 | * @author Michael Zhou 9 | */ 10 | public interface Namespaces { 11 | Set getAvailableNamespaces(); 12 | } 13 | -------------------------------------------------------------------------------- /common/springext/src/main/java/com/alibaba/citrus/springext/Schemas.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.springext; 19 | 20 | import java.util.Map; 21 | 22 | public interface Schemas { 23 | Map getNamedMappings(); 24 | } 25 | -------------------------------------------------------------------------------- /common/springext/src/main/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | http\://www.alibaba.com/schema/springext/springext-base.xsd=META-INF/springext/springext-base.xsd 2 | -------------------------------------------------------------------------------- /common/springext/src/main/resources/com/alibaba/citrus/springext/export/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/springext/src/main/resources/com/alibaba/citrus/springext/export/close.gif -------------------------------------------------------------------------------- /common/springext/src/main/resources/com/alibaba/citrus/springext/export/dir.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/springext/src/main/resources/com/alibaba/citrus/springext/export/dir.gif -------------------------------------------------------------------------------- /common/springext/src/main/resources/com/alibaba/citrus/springext/export/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/springext/src/main/resources/com/alibaba/citrus/springext/export/file.gif -------------------------------------------------------------------------------- /common/springext/src/main/resources/com/alibaba/citrus/springext/export/na.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/springext/src/main/resources/com/alibaba/citrus/springext/export/na.gif -------------------------------------------------------------------------------- /common/springext/src/main/resources/com/alibaba/citrus/springext/export/open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/springext/src/main/resources/com/alibaba/citrus/springext/export/open.gif -------------------------------------------------------------------------------- /common/springext/src/main/resources/com/alibaba/citrus/springext/export/styles-ie.css: -------------------------------------------------------------------------------- 1 | li.no-target-namespace { 2 | filter: alpha(opacity = 50); 3 | } 4 | 5 | li.no-target-namespace li.no-target-namespace { 6 | filter: alpha(opacity = 100); 7 | } 8 | -------------------------------------------------------------------------------- /common/springext/src/test/config/beans-autowire-parent.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /common/springext/src/test/config/beans-autowire.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/config/my-beans-no-default-name.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /common/springext/src/test/config/my-beans.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/a.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/all.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/b.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/ns.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/x.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/y.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /common/springext/src/test/config/schema/z.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/config/services.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /common/springext/src/test/java/com/alibaba/citrus/springext/contrib/deco/MyDecoratableClass.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2013 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.springext.contrib.deco; 19 | 20 | public class MyDecoratableClass { 21 | public String sayHello() { 22 | return "hello"; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /common/springext/src/test/java/com/alibaba/citrus/springext/contrib/deco/MyDecorator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2013 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.springext.contrib.deco; 19 | 20 | public interface MyDecorator { 21 | } 22 | -------------------------------------------------------------------------------- /common/springext/src/test/java/com/alibaba/citrus/springext/support/parser/MyBean.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.springext.support.parser; 19 | 20 | public class MyBean { 21 | } 22 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/included-schema.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/my-cp1.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | test1=com.alibaba.citrus.springext.contrib.simple.Test1$DefinitionParser 2 | test2=com.alibaba.citrus.springext.contrib.simple.Test2$DefinitionParser -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/my-cp2.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | test3=com.alibaba.citrus.springext.contrib.simple.Test3$DefinitionParser 2 | test4=com.alibaba.citrus.springext.contrib.simple.Test4$DefinitionParser -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/my/cp1/test1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 6 | 8 | 9 | 10 | 11 | 13 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/my/cp1/test2.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/my/cp2/test3.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/my/cp2/test4.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/services-tools.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | dateformat=com.alibaba.citrus.springext.contrib.SimpleDateFormatBeanDefinitionParser 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/services.bean-definition-decorators: -------------------------------------------------------------------------------- 1 | my-deco=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/services.bean-definition-decorators-for-attribute: -------------------------------------------------------------------------------- 1 | my-attr=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | container=com.alibaba.citrus.springext.contrib.ContainerServiceBeanDefinitionParser 2 | my-bean=com.alibaba.citrus.springext.support.parser.MyBeanDefinitionParser 3 | my-bean-no-default-name=com.alibaba.citrus.springext.support.parser.MyBeanDefinitionParserNoDefaultName 4 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/services/my-deco.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/services/tools/dateformat.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services=http://www.alibaba.com/schema/services 2 | services/tools=http://www.alibaba.com/schema/services/tools; defaultElement=tool 3 | 4 | my/cp1 = http://www.alibaba.com/schema/my/cp1; nsPrefix=cp1; defaultElement=object1 5 | my/cp2 = http://www.alibaba.com/schema/my/cp2; nsPrefix=cp2ns 6 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | http\://www.alibaba.com/schema/tests.xsd=dummy.txt 2 | http\://www.alibaba.com/schema/springext-base-types.xsd=META-INF/springext-base-types.xsd 3 | 4 | http\://localhost/included-schema.xsd=META-INF/included-schema.xsd 5 | 6 | # test including ../http-conf.xsd used by apache cxf 7 | http\://localhost/transports/http/configuration/http-conf.xsd=META-INF/transports/http/configuration/http-conf.xsd 8 | http\://localhost/transports/http/wsdl/http-conf.xsd=META-INF/transports/http/wsdl/http-conf.xsd 9 | 10 | # invalid and ignored 11 | = -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/spring.tooling: -------------------------------------------------------------------------------- 1 | http\://www.alibaba.com/schema/springext/base-types@prefix=sb-types 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/springext-base-types.xsd: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/transports/http/configuration/http-conf.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/META-INF/transports/http/wsdl/http-conf.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test1/cps: -------------------------------------------------------------------------------- 1 | cp1=http://www.alibaba.com/test1/cp1 2 | cp2=http://www.alibaba.com/test1/cp2 3 | 4 | # invalid and ignored 5 | =http://www.alibaba.com/test1/cp3 6 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test10/cp1.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | mybean=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test10/cps: -------------------------------------------------------------------------------- 1 | cp1=http://www.alibaba.com/test10/cp1 2 | cp2=http://www.alibaba.com/test10/cp2, defaultElement=mybean -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test10/cps2: -------------------------------------------------------------------------------- 1 | cp1=http://www.alibaba.com/test10/cp1; defaultElement=mybean -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test11/cps1: -------------------------------------------------------------------------------- 1 | cp1=http://www.alibaba.com/test11/cp1, illegal 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test11/cps2: -------------------------------------------------------------------------------- 1 | cp2=http://www.alibaba.com/test11/cp2, =mybean -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test11/cps3: -------------------------------------------------------------------------------- 1 | cp3=;defaultElement=mybean -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/cps: -------------------------------------------------------------------------------- 1 | my/services = http://www.alibaba.com/my/services, nsPrefix=svc 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/my-services.bean-definition-decorators: -------------------------------------------------------------------------------- 1 | myservice-abc-xyz = com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/my-services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | myservice = com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | myservice-abc = com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/my/services/myservice-abc-1.0.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/my/services/myservice-abc-xyz-2.0.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/my/services/myservice-abc-xyz.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test12/my/services/myservice.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test13/cps: -------------------------------------------------------------------------------- 1 | my/services = http://www.alibaba.com/my/services 2 | my/services/service1/plugins = http://www.alibaba.com/my/services/service1/plugins 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test13/my-services-service1-plugins.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | plugin1 = com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test13/my-services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | service1 = com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test13/my/services/service1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test13/my/services/service1/plugins/plugin1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/a.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | a1=java.lang.String 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/a/a1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/b.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | b1=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/b/b1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/c.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | c1=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/c/c1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/cps: -------------------------------------------------------------------------------- 1 | a = http://localhost/a 2 | b = http://localhost/b 3 | c = http://localhost/c 4 | d = http://localhost/d 5 | e = http://localhost/e 6 | f = http://localhost/f 7 | g = http://localhost/g 8 | h = http://localhost/h 9 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/d.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | d1=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/d/d1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/e.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | e1=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/e/e1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/f.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | f1=java.lang.String 2 | f2=java.lang.String 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/f/f1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/f/f2.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/g.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | g1=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/g/g1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/h.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | h1=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test14/h/h1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/cps: -------------------------------------------------------------------------------- 1 | services = http://localhost/services 2 | interceptors = http://localhost/interceptors 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/interceptors.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | i1=java.lang.String 2 | i2=java.lang.String 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/interceptors/i1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/interceptors/i2.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | s1=java.lang.String 2 | s2=java.lang.String 3 | s3=java.lang.String 4 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/services/s1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/services/s2.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test15/services/s3.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test2/cp1.bean-definition-decorators: -------------------------------------------------------------------------------- 1 | wrong-class=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test2/cp1.bean-definition-decorators-for-attribute: -------------------------------------------------------------------------------- 1 | wrong-class=java.lang.String -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test2/cp1.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | not-exist-class=com.alibaba.NotExistClass 2 | wrong-class=java.lang.String 3 | no-class= -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test2/cps: -------------------------------------------------------------------------------- 1 | cp1=http://www.alibaba.com/test2/cp1 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test6/cp1.bean-definition-decorators: -------------------------------------------------------------------------------- 1 | my1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 2 | my2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator2 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test6/cp1.bean-definition-decorators-for-attribute: -------------------------------------------------------------------------------- 1 | my1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 2 | my2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator2 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test6/cp1.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | my1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | my2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser2 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test6/cps: -------------------------------------------------------------------------------- 1 | cp1=http://www.alibaba.com/test6/cp1 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test7/cps: -------------------------------------------------------------------------------- 1 | /dir//cp1 = http://www.alibaba.com/test7//../test7/dir/cp1/ 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test7/dir-cp1.bean-definition-decorators: -------------------------------------------------------------------------------- 1 | my1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 2 | my2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test7/dir-cp1.bean-definition-decorators-for-attribute: -------------------------------------------------------------------------------- 1 | my1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 2 | my2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionDecorator 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test7/dir-cp1.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | my1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | my2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test8/cps: -------------------------------------------------------------------------------- 1 | dir/cp1 = http://www.alibaba.com/test8/cp1 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/cps: -------------------------------------------------------------------------------- 1 | my/services = http://www.alibaba.com/my/services, nsPrefix=svc 2 | my/plugins = http://www.alibaba.com/my/plugins 3 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my-plugins.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | plugin1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my-services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | service1=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 2 | service2=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 3 | service3=com.alibaba.citrus.springext.contrib.MyBeanDefinitionParser 4 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my/plugins/plugin1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my/services/service1-1.0.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my/services/service1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my/services/service2-2.0.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my/services/service2.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/TEST-INF/test9/my/services/service3.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /common/springext/src/test/resources/dummy.txt: -------------------------------------------------------------------------------- 1 | dummy -------------------------------------------------------------------------------- /common/util/src/main/resources/META-INF/services/char.converter.SimplifiedToTraditionalChinese: -------------------------------------------------------------------------------- 1 | com.alibaba.citrus.util.i18n.provider.SimplifiedToTraditionalChineseProvider -------------------------------------------------------------------------------- /common/util/src/main/resources/META-INF/services/char.converter.TraditionalToSimplifiedChinese: -------------------------------------------------------------------------------- 1 | com.alibaba.citrus.util.i18n.provider.TraditionalToSimplifiedChineseProvider -------------------------------------------------------------------------------- /common/util/src/main/resources/com/alibaba/citrus/util/i18n/provider/SimplifiedToTraditionalChinese.ctable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/util/src/main/resources/com/alibaba/citrus/util/i18n/provider/SimplifiedToTraditionalChinese.ctable -------------------------------------------------------------------------------- /common/util/src/main/resources/com/alibaba/citrus/util/i18n/provider/TraditionalToSimplifiedChinese.ctable: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/util/src/main/resources/com/alibaba/citrus/util/i18n/provider/TraditionalToSimplifiedChinese.ctable -------------------------------------------------------------------------------- /common/util/src/test/config/templates/inc/def.txt: -------------------------------------------------------------------------------- 1 | #@trimming off 2 | hello, 3 | world 4 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test01_text_simple.txt: -------------------------------------------------------------------------------- 1 | hello, 2 | world -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test02_placeholder_simple.txt: -------------------------------------------------------------------------------- 1 | a${123}${a123}\${abc}${ abc }${a:123}${a : }${a:1,2,3}b -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test02_placeholder_template.txt: -------------------------------------------------------------------------------- 1 | ${for: #aaa, #bbb.ccc, ccc} 2 | 3 | #aaa 4 | #end 5 | 6 | #bbb 7 | #ccc 8 | #end 9 | #end 10 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test02_placeholder_template_group.txt: -------------------------------------------------------------------------------- 1 | #@trimming on 2 | 3 | ${for: #aaa.*, ccc} 4 | 5 | #aaa 6 | #d 7 | #end 8 | #c 9 | #end 10 | #b 11 | #end 12 | #end 13 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test02_placeholder_template_group_2.txt: -------------------------------------------------------------------------------- 1 | #@trimming on 2 | 3 | #aaa 4 | ${for: #*, ccc} 5 | 6 | #d 7 | #end 8 | #c 9 | #end 10 | #b 11 | #end 12 | #end 13 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test03_subtemplate_simple.txt: -------------------------------------------------------------------------------- 1 | a\\\#abc#123\$#{abc}\#@xxx ## comment 2 | #abc 3 | #def 4 | hello 5 | #end 6 | #end 7 | ## comment 8 | 9 | #def ##comment 10 | #end ##comment 11 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test04_include_template_override.txt: -------------------------------------------------------------------------------- 1 | #aaa 2 | level0 3 | #end 4 | 5 | #level1 6 | #level2 7 | $#{aaa}$#{bbb} 8 | 9 | #aaa 10 | level2 11 | #end 12 | #end 13 | 14 | #aaa 15 | level1 16 | #end 17 | #end 18 | 19 | #bbb 20 | level0 21 | #end 22 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test04_include_template_simple.txt: -------------------------------------------------------------------------------- 1 | a$#{123}$#{a123}\$#{abc}$#{ abc }$#{a:123}$#{a : }$#{a:1,2,3}b 2 | #a123 3 | #end 4 | #abc 5 | #end -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test04_include_template_sub.txt: -------------------------------------------------------------------------------- 1 | #@trimming on 2 | 3 | $#{level1.level2.aaa} 4 | 5 | #level1 6 | #level2 7 | #aaa 8 | level2 9 | #end 10 | #end 11 | #end 12 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test05_param_gbk.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/util/src/test/config/templates/test05_param_gbk.txt -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test05_param_override.txt: -------------------------------------------------------------------------------- 1 | #@xxx 111 2 | #@ zzz 3 | 4 | #level1 5 | #@ xxx 222 6 | #@yyy 444 7 | 8 | #level2 9 | #@ xxx 333 10 | #end 11 | #end -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test05_param_utf8.txt: -------------------------------------------------------------------------------- 1 | ## This template is encoded by UTF-8 2 | #@ charset UTF-8 3 | 4 | 你好! -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test06_real_case.txt: -------------------------------------------------------------------------------- 1 | #@charset UTF-8 2 | #@trimming on 3 | #@whitespace collapse 4 | 5 | 6 | 7 | ${title: 我的标题} 8 | 9 | 10 | $#{itemlist} 11 | 12 | 13 | 14 | #itemlist 15 | #@whitespace reserve 16 |
    17 | ## comment: foreach item 18 | ${item: #dateItem, #datetimeItem} ## ignore the rest of line 19 |
20 | 21 | #dateItem 22 |
  • ${date: yyyy-MM-dd}
  • 23 | #end 24 | 25 | #datetimeItem 26 |
  • ${date: yyyy-MM-dd,HH:mm}
  • 27 | #end 28 | #end 29 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test06_real_case_2.txt: -------------------------------------------------------------------------------- 1 | #@charset UTF-8 2 | #@trimming on 3 | #@whitespace collapse 4 | 5 | 6 | 7 | ${title: 我的标题} 8 | 9 | 10 | $#{itemlist} 11 | 12 | 13 | 14 | #itemlist 15 |
      16 | ## comment: foreach item 17 | ${item: #dateItem, #datetimeItem} ## ignore the rest of line 18 |
    19 | 20 | #dateItem 21 |
  • ${date: yyyy-MM-dd}
  • 22 | #end 23 | 24 | #datetimeItem 25 |
  • ${date: yyyy-MM-dd,HH:mm}
  • 26 | #end 27 | #end 28 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test07_predefined_templates.txt: -------------------------------------------------------------------------------- 1 | #@trimming on 2 | 3 | hello$#{BR} 4 | 5 | #href 6 | $#{SPACE}href="test" 7 | #end 8 | 9 | #onclick 10 | $#{SPACE}onclick="alert('hi')" 11 | #end 12 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test07_reload_1.txt: -------------------------------------------------------------------------------- 1 | abc 2 | ${abc} 3 | -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test07_reload_2.txt: -------------------------------------------------------------------------------- 1 | xyz 2 | ${xyz} -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test07_reload_import.txt: -------------------------------------------------------------------------------- 1 | $#{abc} 2 | #abc(imported.txt) -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test08_import.txt: -------------------------------------------------------------------------------- 1 | #@trimming on 2 | 3 | ${abc: #abc} 4 | 5 | #abc(inc/def.txt) -------------------------------------------------------------------------------- /common/util/src/test/config/templates/test08_import_notfound.txt: -------------------------------------------------------------------------------- 1 | #@trimming on 2 | 3 | ${abc: #abc} 4 | 5 | #abc(notfound.txt) -------------------------------------------------------------------------------- /common/util/src/test/java/com/alibaba/WrongPrefixMessages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba; 19 | 20 | import com.alibaba.citrus.util.internal.impl.CitrusMessageFormatter; 21 | 22 | public class WrongPrefixMessages extends CitrusMessageFormatter { 23 | } 24 | -------------------------------------------------------------------------------- /common/util/src/test/java/com/alibaba/citrus/util/MyErrorService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.util; 19 | 20 | public class MyErrorService { 21 | public MyErrorService() { 22 | throw new UnsupportedOperationException(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /common/util/src/test/java/com/alibaba/citrus/util/MyService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.util; 19 | 20 | public class MyService { 21 | } 22 | -------------------------------------------------------------------------------- /common/util/src/test/java/com/alibaba/citrus/util/internal/Servlet3UtilTests.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.citrus.util.internal; 2 | 3 | import static org.junit.Assert.*; 4 | 5 | import javax.servlet.http.HttpServletRequest; 6 | 7 | import org.junit.Test; 8 | 9 | public class Servlet3UtilTests { 10 | @Test 11 | public void isServlet3() { 12 | try { 13 | HttpServletRequest.class.getMethod("getAsyncContext"); 14 | assertTrue(Servlet3Util.isServlet3()); 15 | } catch (NoSuchMethodException e) { 16 | assertFalse(Servlet3Util.isServlet3()); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /common/util/src/test/resources/META-INF/services/localeNotifiers: -------------------------------------------------------------------------------- 1 | 2 | com.alibaba.citrus.util.i18n.LocaleUtilTests$N1 3 | 4 | com.alibaba.citrus.util.i18n.LocaleUtilTests$N2 -------------------------------------------------------------------------------- /common/util/src/test/resources/META-INF/services/myservice: -------------------------------------------------------------------------------- 1 | com.alibaba.citrus.util.MyService 2 | -------------------------------------------------------------------------------- /common/util/src/test/resources/META-INF/services/myservice.err: -------------------------------------------------------------------------------- 1 | com.alibaba.citrus.util.MyErrorService 2 | -------------------------------------------------------------------------------- /common/util/src/test/resources/META-INF/services/myservice.notfound: -------------------------------------------------------------------------------- 1 | com.alibaba.common.lang.MyServiceNotFound 2 | -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/messages/util_internal_impl_CitrusMessageFormatterTests$MyCitrus.properties: -------------------------------------------------------------------------------- 1 | a = hello, citrus -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/MessageUtilTests.properties: -------------------------------------------------------------------------------- 1 | key=message {0}, {1}, {2}, {3}, {4} -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/MyMessages.properties: -------------------------------------------------------------------------------- 1 | 2 | ##a = hello {0} 3 | 4 | b = hello {0} 5 | 6 | ##c = hello {0} 7 | 8 | d = hello {0} 9 | -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/MyMessages_zh_CN.properties: -------------------------------------------------------------------------------- 1 | 2 | ##a = \u4F60\u597D {0} 3 | 4 | ##b = \u4F60\u597D {0} 5 | 6 | c = \u4F60\u597D {0} 7 | 8 | d = \u4F60\u597D {0} 9 | -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/dummy2.txt: -------------------------------------------------------------------------------- 1 | dummy2 -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/myprocessor/dummy.txt: -------------------------------------------------------------------------------- 1 | dummy -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/myprocessor/style.txt.tpl: -------------------------------------------------------------------------------- 1 | ${url:style.css} -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/simple/simple.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/simple/simple.css -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/simple/simple.htm: -------------------------------------------------------------------------------- 1 | simple template: ${url:test.gif} 2 | -------------------------------------------------------------------------------- /common/util/src/test/resources/com/alibaba/citrus/util/internal/webpagelite/simple/test.gif: -------------------------------------------------------------------------------- 1 | i'm gif -------------------------------------------------------------------------------- /resources/logo_webx.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/resources/logo_webx.psd -------------------------------------------------------------------------------- /resources/logo_webx_110_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/resources/logo_webx_110_80.png -------------------------------------------------------------------------------- /service/base/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services=http://www.alibaba.com/schema/services; defaultElement=service 2 | -------------------------------------------------------------------------------- /service/configuration/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | simple-configuration=com.alibaba.citrus.service.configuration.impl.SimpleConfigurationDefinitionParser 2 | property-placeholder=com.alibaba.citrus.service.configuration.impl.PropertyPlaceholderConfigurerDefinitionParser 3 | property-editor-registrars=com.alibaba.citrus.service.configuration.impl.PropertyEditorRegistrarsDefinitionParser 4 | -------------------------------------------------------------------------------- /service/configuration/src/test/config/my-configuration-wrong.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | false 12 | 13 | 14 | -------------------------------------------------------------------------------- /service/configuration/src/test/config/property-placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | ${productionMode:false} 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/configuration/src/test/config/simple-configuration-skip-validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/configuration/src/test/config/simple-configuration.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | true 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/configuration/src/test/java/com/alibaba/citrus/service/configuration/MyBean1.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.configuration; 19 | 20 | public class MyBean1 { 21 | } 22 | -------------------------------------------------------------------------------- /service/configuration/src/test/java/com/alibaba/citrus/service/configuration/MyBean2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.configuration; 19 | 20 | public class MyBean2 { 21 | } 22 | -------------------------------------------------------------------------------- /service/configuration/src/test/java/com/alibaba/citrus/service/configuration/MyBean3.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.configuration; 19 | 20 | public class MyBean3 { 21 | } 22 | -------------------------------------------------------------------------------- /service/configuration/src/test/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | my-configuration=com.alibaba.citrus.service.configuration.impl.MyConfigurationDefinitionParser 2 | -------------------------------------------------------------------------------- /service/configuration/src/test/resources/test1.props: -------------------------------------------------------------------------------- 1 | x=111 -------------------------------------------------------------------------------- /service/configuration/src/test/resources/test2.props: -------------------------------------------------------------------------------- 1 | y=222 -------------------------------------------------------------------------------- /service/configuration/src/test/resources/test3.props: -------------------------------------------------------------------------------- 1 | x=11111 -------------------------------------------------------------------------------- /service/dataresolver/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | data-resolver=com.alibaba.citrus.service.dataresolver.impl.DataResolverServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/dataresolver/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/data-resolver/factories=http://www.alibaba.com/schema/services/data-resolver/factories; defaultElement=factory; nsPrefix=dr-factories 2 | -------------------------------------------------------------------------------- /service/form/src/main/resources/META-INF/services-form-conditions.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | jexl-condition=com.alibaba.citrus.service.form.impl.condition.JexlCondition$DefinitionParser -------------------------------------------------------------------------------- /service/form/src/main/resources/META-INF/services-pull-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | form-tool=com.alibaba.citrus.service.form.support.FormTool$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/form/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | form=com.alibaba.citrus.service.form.impl.FormServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/form/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/form/validators=http://www.alibaba.com/schema/services/form/validators; defaultElement=validator; nsPrefix=fm-validators 2 | services/form/conditions=http://www.alibaba.com/schema/services/form/conditions; defaultElement=condition; nsPrefix=fm-conditions 3 | -------------------------------------------------------------------------------- /service/form/src/test/config/data/file1.txt: -------------------------------------------------------------------------------- 1 | aaa -------------------------------------------------------------------------------- /service/form/src/test/config/data/file2.txt: -------------------------------------------------------------------------------- 1 | 1234567890 -------------------------------------------------------------------------------- /service/form/src/test/config/data/file3.txt: -------------------------------------------------------------------------------- 1 | abcd -------------------------------------------------------------------------------- /service/form/src/test/config/data/file4.gif: -------------------------------------------------------------------------------- 1 | abcd -------------------------------------------------------------------------------- /service/form/src/test/config/data/file4_1.GIF: -------------------------------------------------------------------------------- 1 | abcd -------------------------------------------------------------------------------- /service/form/src/test/config/data/file5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/form/src/test/config/data/file5.jpg -------------------------------------------------------------------------------- /service/form/src/test/config/data/file6.jpg: -------------------------------------------------------------------------------- 1 | abcde -------------------------------------------------------------------------------- /service/form/src/test/config/data/file6_1.JPG: -------------------------------------------------------------------------------- 1 | abcde -------------------------------------------------------------------------------- /service/form/src/test/config/data/file7: -------------------------------------------------------------------------------- 1 | abcd -------------------------------------------------------------------------------- /service/form/src/test/config/myform.properties: -------------------------------------------------------------------------------- 1 | form.group1.field1.required = - 2 | form.group1.field2.required = - 3 | 4 | myform.group1.field1.required = - 5 | myform.group1.field2.required = - 6 | -------------------------------------------------------------------------------- /service/form/src/test/config/myform_zh_CN.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/form/src/test/config/myform_zh_CN.properties -------------------------------------------------------------------------------- /service/form/src/test/config/myform_zh_TW.properties: -------------------------------------------------------------------------------- 1 | form.group1.field1.required = ȱʧ${displayName} 2 | form.group1.field2.required = ȱʧ${displayName} 3 | 4 | myform.group1.field1.required = myform - ȱʧ${displayName} 5 | myform.group1.field2.required = myform - ȱʧ${displayName} 6 | 7 | -------------------------------------------------------------------------------- /service/form/src/test/config/services-base-with-upload.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /service/form/src/test/config/services-base-without-upload.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/form/src/test/config/services-form-no-request.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/form/src/test/config/services-skip-validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /service/freemarker/src/main/resources/META-INF/services-template-engines.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | freemarker-engine=com.alibaba.citrus.service.freemarker.impl.FreeMarkerEngineDefinitionParser 2 | -------------------------------------------------------------------------------- /service/freemarker/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/template/engines/freemarker/plugins=http://www.alibaba.com/schema/services/template/engines/freemarker/plugins; defaultElement=plugin; nsPrefix=ftl-plugins 2 | -------------------------------------------------------------------------------- /service/freemarker/src/test/config/services-skip-validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test.ftl: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test2.ftl: -------------------------------------------------------------------------------- 1 | test2 -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test3.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/freemarker/src/test/config/templates/test3.ftl -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test_html_escape.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/freemarker/src/test/config/templates/test_html_escape.ftl -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test_render.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/freemarker/src/test/config/templates/test_render.ftl -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test_render_error.ftl: -------------------------------------------------------------------------------- 1 | <#list> 2 | -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test_renderable.ftl: -------------------------------------------------------------------------------- 1 | ${object.callMethod()} -------------------------------------------------------------------------------- /service/freemarker/src/test/config/templates/test_url_encode.ftl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/freemarker/src/test/config/templates/test_url_encode.ftl -------------------------------------------------------------------------------- /service/jsp/src/main/resources/META-INF/services-template-engines.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | jsp-engine=com.alibaba.citrus.service.jsp.impl.JspEngineDefinitionParser 2 | -------------------------------------------------------------------------------- /service/jsp/src/test/config/webapp/templates/test.jsp: -------------------------------------------------------------------------------- 1 | <%@ page pageEncoding="GBK" contentType="text/html; charset=UTF-8" %> 2 | hello, <%=request.getAttribute("hello")%>! 3 | -------------------------------------------------------------------------------- /service/jsp/src/test/config/webapp/templates/test.jspx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/jsp/src/test/config/webapp/templates/test.jspx -------------------------------------------------------------------------------- /service/jsp/src/test/config/webapp1/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | app1 10 | com.alibaba.citrus.service.jsp.JspEngineTests$MyServlet 11 | 12 | 13 | 14 | app1 15 | /app1/* 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /service/jsp/src/test/config/webapp1/mytemplates/mytemplate.jsp: -------------------------------------------------------------------------------- 1 | hello, world! -------------------------------------------------------------------------------- /service/jsp/src/test/config/webapp2/WEB-INF-2/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | app1 10 | com.alibaba.citrus.service.jsp.JspEngineTests$MyServlet 11 | 12 | 13 | 14 | app1 15 | /app1/* 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /service/jsp/src/test/config/webapp2/mytemplates/mytemplate.jsp: -------------------------------------------------------------------------------- 1 | hello, world! -------------------------------------------------------------------------------- /service/mail/src/main/resources/META-INF/services-mails-contents.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | text-content=com.alibaba.citrus.service.mail.impl.content.TextContentDefinitionParser 2 | text-template-content=com.alibaba.citrus.service.mail.impl.content.TextTemplateContentDefinitionParser 3 | html-template-content=com.alibaba.citrus.service.mail.impl.content.HTMLTemplateContentDefinitionParser 4 | attachment-content=com.alibaba.citrus.service.mail.impl.content.AttachmentContentDefinitionParser 5 | mixed-content=com.alibaba.citrus.service.mail.impl.content.MixedContentDefinitionParser 6 | alternative-content=com.alibaba.citrus.service.mail.impl.content.AlternativeContentDefinitionParser 7 | -------------------------------------------------------------------------------- /service/mail/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | mails=com.alibaba.citrus.service.mail.impl.MailServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/mail/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/mails/contents=http://www.alibaba.com/schema/services/mails/contents; defaultElement=content; nsPrefix=mail-contents 2 | -------------------------------------------------------------------------------- /service/mail/src/test/config/emptyfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/mail/src/test/config/emptyfile -------------------------------------------------------------------------------- /service/mail/src/test/config/java.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/mail/src/test/config/java.gif -------------------------------------------------------------------------------- /service/mail/src/test/config/services_import_null.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/mail/src/test/config/subdir/bible.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/mail/src/test/config/subdir/bible.jpg -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/complexhtml.ftl: -------------------------------------------------------------------------------- 1 | freemarker 2 | <#foreach i in 1..10> ${i} 3 | 4 | image URL1: 5 | image URL2: 6 | image URL3: 7 | -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/complexhtml.vm: -------------------------------------------------------------------------------- 1 | velocity 2 | #foreach ($i in [1..10]) $i #end 3 | 4 | image URL1: 5 | image URL2: 6 | image URL3: 7 | -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/dup_fileNames.vm: -------------------------------------------------------------------------------- 1 | $image1.getURI("java.gif") 2 | $image2.getURI("java.gif") 3 | $image1.getURI("emptyfile") 4 | $image2.getURI("emptyfile") 5 | -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/imageNotFound.vm: -------------------------------------------------------------------------------- 1 | ${image.getURI("notExist.gif")} 2 | -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/mytemplate.ftl: -------------------------------------------------------------------------------- 1 | freemarker 2 | <#foreach i in 1..10> ${i} 3 | 4 | ${myconst!"$myconst"} 5 | ${stringUtil!"$stringUtil"} 6 | ${hello!"$hello"} 7 | -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/mytemplate.vm: -------------------------------------------------------------------------------- 1 | velocity 2 | #foreach ($i in [1..10]) $i #end 3 | 4 | $myconst 5 | $stringUtil 6 | $hello 7 | -------------------------------------------------------------------------------- /service/mail/src/test/config/templates/mail/streamOnlyResource.vm: -------------------------------------------------------------------------------- 1 | ${image.getURI("java.gif")} 2 | -------------------------------------------------------------------------------- /service/mail/src/test/config/testfile.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/mail/src/test/config/testfile.txt -------------------------------------------------------------------------------- /service/mail/src/test/config/welcome.eml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/mail/src/test/config/welcome.eml -------------------------------------------------------------------------------- /service/mail/src/test/config/welcome_utf8.eml: -------------------------------------------------------------------------------- 1 | Date: Mon, 27 Jul 2009 16:21:50 +0800 2 | From: Michael Zhou 3 | To: zyh@alibaba-inc.com 4 | Subject: =?UTF-8?B?5qyi6L+O?= 5 | Reply-To: zyh@alibaba-inc.com 6 | Message-Id: <20090727162119.DB60.1AA6161@alibaba-inc.com> 7 | MIME-Version: 1.0 8 | X-Mailer: Becky! ver. 2.50.07 [CN] 9 | Content-Type: text/plain; charset="UTF-8" 10 | Content-Transfer-Encoding: 8bit 11 | 12 | 你好,欢迎! 13 | -------------------------------------------------------------------------------- /service/mail/src/test/resources/META-INF/javamail.providers: -------------------------------------------------------------------------------- 1 | # See http://java.sun.com/products/javamail/javadocs/javax/mail/Session.html 2 | protocol=smtp; type=transport; class=com.alibaba.citrus.service.mail.mock.MyMockTransport; vendor=alibaba.com mail service project; 3 | protocol=pop3; type=store; class=com.alibaba.citrus.service.mail.mock.MyMockStore; vendor=alibaba.com mail service project; 4 | -------------------------------------------------------------------------------- /service/mappingrule/src/main/resources/META-INF/services-mapping-rules.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | direct-module-rule=com.alibaba.citrus.service.mappingrule.impl.rule.DirectModuleMappingRule$DefinitionParser 2 | direct-template-rule=com.alibaba.citrus.service.mappingrule.impl.rule.DirectTemplateMappingRule$DefinitionParser 3 | extension-rule=com.alibaba.citrus.service.mappingrule.impl.rule.ExtensionMappingRule$DefinitionParser 4 | fallback-module-rule=com.alibaba.citrus.service.mappingrule.impl.rule.FallbackModuleMappingRule$DefinitionParser 5 | fallback-template-rule=com.alibaba.citrus.service.mappingrule.impl.rule.FallbackTemplateMappingRule$DefinitionParser 6 | -------------------------------------------------------------------------------- /service/mappingrule/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | mapping-rules=com.alibaba.citrus.service.mappingrule.impl.MappingRuleServiceDefinitionParser -------------------------------------------------------------------------------- /service/mappingrule/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/mapping-rules=http://www.alibaba.com/schema/services/mapping-rules; defaultElement=mapping-rule 2 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix.locale/aaa/bbb/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix.locale/aaa/bbb/default_zh_TW.jsp: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix.locale/aaa/bbb/myOtherModule_zh.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix.locale/aaa/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix.locale/aaa/default_zh.jsp: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix.locale/ccc/default_zh.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix/aaa/bbb/default.jsp: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix/aaa/bbb/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix/aaa/bbb/myOtherModule.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix/aaa/default.jsp: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix/aaa/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/config/templates/myprefix/ccc/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /service/mappingrule/src/test/java/com/alibaba/app1/module/screen/MyDefaultModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.app1.module.screen; 19 | 20 | public class MyDefaultModule { 21 | public void execute() throws Exception { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/java/com/alibaba/app1/module/screen/aaa/Default.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.app1.module.screen.aaa; 19 | 20 | public class Default { 21 | public void execute() throws Exception { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/java/com/alibaba/app1/module/screen/aaa/bbb/Default.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.app1.module.screen.aaa.bbb; 19 | 20 | public class Default { 21 | public void execute() throws Exception { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/java/com/alibaba/app1/module/screen/aaa/bbb/MyOtherModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.app1.module.screen.aaa.bbb; 19 | 20 | public class MyOtherModule { 21 | public void execute() throws Exception { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/java/com/alibaba/app1/module/screen/ccc/Default.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.app1.module.screen.ccc; 19 | 20 | public class Default { 21 | public void execute() throws Exception { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/resources/app1/module/control/myprod/MyControl.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package app1.module.control.myprod; 19 | 20 | class MyControl { 21 | public void execute() { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/mappingrule/src/test/resources/app1/module/screens/AbstractScreen.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package app1.module.screens; 19 | 20 | import com.alibaba.citrus.service.moduleloader.Module; 21 | 22 | abstract class AbstractScreen implements Module { 23 | } 24 | -------------------------------------------------------------------------------- /service/moduleloader/src/main/java/com/alibaba/citrus/service/moduleloader/ModuleEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.moduleloader; 19 | 20 | /** 21 | * 一个标志接口,用于标识支持event处理的module。 22 | * 23 | * @author Michael Zhou 24 | */ 25 | public interface ModuleEvent { 26 | } 27 | -------------------------------------------------------------------------------- /service/moduleloader/src/main/resources/META-INF/services-module-loader-adapters.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | action-event-adapter=com.alibaba.citrus.service.moduleloader.impl.adapter.ActionEventAdapterFactoryDefinitionParser 2 | screen-event-adapter=com.alibaba.citrus.service.moduleloader.impl.adapter.ScreenEventAdapterFactoryDefinitionParser 3 | data-binding-adapter=com.alibaba.citrus.service.moduleloader.impl.adapter.DataBindingAdapterFactoryDefinitionParser 4 | -------------------------------------------------------------------------------- /service/moduleloader/src/main/resources/META-INF/services-module-loader-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | class-modules=com.alibaba.citrus.service.moduleloader.impl.factory.ClassModuleFactoryDefinitionParser 2 | script-modules=com.alibaba.citrus.service.moduleloader.impl.factory.ScriptModuleFactoryDefinitionParser 3 | -------------------------------------------------------------------------------- /service/moduleloader/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | module-loader=com.alibaba.citrus.service.moduleloader.impl.ModuleLoaderServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/moduleloader/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/module-loader/factories=http://www.alibaba.com/schema/services/module-loader/factories; defaultElement=factory; nsPrefix=ml-factories 2 | services/module-loader/adapters=http://www.alibaba.com/schema/services/module-loader/adapters; defaultElement=adapter; nsPrefix=ml-adapters 3 | -------------------------------------------------------------------------------- /service/moduleloader/src/main/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | http\://www.alibaba.com/schema/services/module-loader/factories/factories-base.xsd=META-INF/services/module-loader/factories/factories-base.xsd 2 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/config/base-dev.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | false 12 | 13 | 14 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/config/base-production.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | true 12 | 13 | 14 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/config/base-root.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/java/com/alibaba/citrus/service/moduleloader/MyScreen.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.moduleloader; 19 | 20 | public class MyScreen { 21 | public void execute() { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/java/com/alibaba/test/app1/module/control/InvalidControl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.test.app1.module.control; 19 | 20 | public class InvalidControl { 21 | } 22 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/resources/app1/module/control/myprod/MyControl.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package app1.module.control.myprod; 19 | 20 | class MyControl { 21 | public void execute() { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /service/moduleloader/src/test/resources/app1/module/screens/AbstractScreen.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package app1.module.screens; 19 | 20 | import com.alibaba.citrus.service.moduleloader.Module; 21 | 22 | abstract class AbstractScreen implements Module { 23 | } 24 | -------------------------------------------------------------------------------- /service/pipeline/src/main/resources/META-INF/services-pipeline-conditions.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | all-of=com.alibaba.citrus.service.pipeline.impl.condition.AllOf$DefinitionParser 2 | any-of=com.alibaba.citrus.service.pipeline.impl.condition.AnyOf$DefinitionParser 3 | none-of=com.alibaba.citrus.service.pipeline.impl.condition.NoneOf$DefinitionParser 4 | jexl-condition=com.alibaba.citrus.service.pipeline.impl.condition.JexlCondition$DefinitionParser 5 | -------------------------------------------------------------------------------- /service/pipeline/src/main/resources/META-INF/services-pipeline-valves.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | loop=com.alibaba.citrus.service.pipeline.impl.valve.LoopValve$DefinitionParser 2 | while=com.alibaba.citrus.service.pipeline.impl.valve.WhileLoopValve$DefinitionParser 3 | break=com.alibaba.citrus.service.pipeline.impl.valve.BreakValve$DefinitionParser 4 | break-if=com.alibaba.citrus.service.pipeline.impl.valve.BreakIfValve$DefinitionParser 5 | break-unless=com.alibaba.citrus.service.pipeline.impl.valve.BreakUnlessValve$DefinitionParser 6 | try-catch-finally=com.alibaba.citrus.service.pipeline.impl.valve.TryCatchFinallyValve$DefinitionParser 7 | if=com.alibaba.citrus.service.pipeline.impl.valve.IfValve$DefinitionParser 8 | choose=com.alibaba.citrus.service.pipeline.impl.valve.ChooseValve$DefinitionParser 9 | sub-pipeline=com.alibaba.citrus.service.pipeline.impl.valve.SubPipelineValve$DefinitionParser 10 | exit=com.alibaba.citrus.service.pipeline.impl.valve.ExitValve$DefinitionParser 11 | -------------------------------------------------------------------------------- /service/pipeline/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | pipeline=com.alibaba.citrus.service.pipeline.impl.PipelineDefinitionParser 2 | -------------------------------------------------------------------------------- /service/pipeline/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/pipeline/valves=http://www.alibaba.com/schema/services/pipeline/valves; defaultElement=valve; nsPrefix=pl-valves 2 | services/pipeline/conditions=http://www.alibaba.com/schema/services/pipeline/conditions; defaultElement=condition; nsPrefix=pl-conditions 3 | -------------------------------------------------------------------------------- /service/pipeline/src/test/resources/META-INF/services-pipeline-valves.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | log=com.alibaba.citrus.service.pipeline.valve.LogValve$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/pipeline/src/test/resources/META-INF/services/pipeline/valves/log.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /service/pull/src/main/resources/META-INF/services-pull-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | bean-tool=com.alibaba.citrus.service.pull.support.BeanTool$DefinitionParser 2 | constants=com.alibaba.citrus.service.pull.support.ConstantToolSet$DefinitionParser 3 | utils=com.alibaba.citrus.service.pull.support.UtilToolSet$DefinitionParser 4 | mixin=com.alibaba.citrus.service.pull.support.MixinTool$DefinitionParser 5 | context-exposer=com.alibaba.citrus.service.pull.support.ContextExposerToolSet$DefinitionParser 6 | -------------------------------------------------------------------------------- /service/pull/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | pull=com.alibaba.citrus.service.pull.impl.PullServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/pull/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/pull/factories=http://www.alibaba.com/schema/services/pull/factories; defaultElement=factory; nsPrefix=pull-factories 2 | -------------------------------------------------------------------------------- /service/pull/src/test/config/pull/services-pull-wrong-no-id-1.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/pull/src/test/resources/META-INF/services-pull-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | my-inner-tool=com.alibaba.citrus.service.pull.AbstractPullServiceConfigTests$InnerToolDefinitionParser 2 | -------------------------------------------------------------------------------- /service/pull/src/test/resources/META-INF/services/pull/factories/my-inner-tool.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/java/com/alibaba/citrus/service/requestcontext/impl/HeaderCommitter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.requestcontext.impl; 19 | 20 | interface HeaderCommitter { 21 | void commitHeaders(); 22 | } 23 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/java/com/alibaba/citrus/service/requestcontext/rewrite/RewriteContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.requestcontext.rewrite; 19 | 20 | /** 代表一个rewrite上下文信息。 */ 21 | public interface RewriteContext { 22 | } 23 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-basic-interceptors.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | response-header-security-filter=com.alibaba.citrus.service.requestcontext.basic.impl.ResponseHeaderSecurityFilter$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-parser-filters.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | uploaded-file-whitelist=com.alibaba.citrus.service.requestcontext.parser.filter.UploadedFileExtensionWhitelist$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-encoders.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | serialization-encoder=com.alibaba.citrus.service.requestcontext.session.encoder.impl.SerializationEncoder$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-encrypters.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | aes-encrypter=com.alibaba.citrus.service.requestcontext.session.encrypter.impl.AesEncrypter$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-idgens.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | random-id-generator=com.alibaba.citrus.service.requestcontext.session.idgen.random.impl.RandomIDGeneratorDefinitionParser 2 | uuid-generator=com.alibaba.citrus.service.requestcontext.session.idgen.uuid.impl.UUIDGeneratorDefinitionParser 3 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-interceptors.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | lifecycle-logger=com.alibaba.citrus.service.requestcontext.session.interceptor.SessionLifecycleLogger$DefinitionParser 2 | attribute-whitelist=com.alibaba.citrus.service.requestcontext.session.interceptor.SessionAttributeWhitelist$DefinitionParser 3 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-model-encoders.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | default-session-model-encoder=com.alibaba.citrus.service.requestcontext.session.impl.SessionModelEncoderImpl$DefinitionParser 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-serializers.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | java-serializer=com.alibaba.citrus.service.requestcontext.session.serializer.impl.JavaSerializer$DefinitionParser 2 | hessian-serializer=com.alibaba.citrus.service.requestcontext.session.serializer.impl.HessianSerializer$DefinitionParser 3 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-stores.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | cookie-store=com.alibaba.citrus.service.requestcontext.session.store.cookie.impl.CookieStoreDefinitionParser 2 | simple-memory-store=com.alibaba.citrus.service.requestcontext.session.store.simple.impl.SimpleMemoryStoreDefinitionParser 3 | single-valued-cookie-store=com.alibaba.citrus.service.requestcontext.session.store.cookie.impl.SingleValuedCookieStoreDefinitionParser 4 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services-request-contexts-session-value-encoders.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | simple-value-encoder=com.alibaba.citrus.service.requestcontext.session.valueencoder.impl.SimpleValueEncoder$DefinitionParser 2 | mapped-values-encoder=com.alibaba.citrus.service.requestcontext.session.valueencoder.impl.MappedValuesEncoder$DefinitionParser 3 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | request-contexts=com.alibaba.citrus.service.requestcontext.impl.RequestContextChainingServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/main/resources/META-INF/services/request-contexts/session/serializers/java-serializer.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | servlet 10 | com.alibaba.citrus.service.requestcontext.AbstractRequestContextsTests$NoopServlet 11 | 12 | 13 | 14 | 15 | servlet 16 | /servlet/* 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/empty.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/form.html: -------------------------------------------------------------------------------- 1 |
    5 | 6 |
    7 |
    8 |
    9 |
    10 |
    11 |
    12 | 13 | 14 |
    15 | -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/form2.html: -------------------------------------------------------------------------------- 1 |
    4 | 5 |
    6 |
    7 | 8 | 9 |
    10 | -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/smallfile: -------------------------------------------------------------------------------- 1 | null -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/smallfile.gif: -------------------------------------------------------------------------------- 1 | gif -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/smallfile.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/requestcontext/src/test/config/smallfile.txt -------------------------------------------------------------------------------- /service/requestcontext/src/test/config/smallfile_.JPG: -------------------------------------------------------------------------------- 1 | jpg -------------------------------------------------------------------------------- /service/resource/src/main/resources/META-INF/services-resource-loading-filters.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | xslt-filter=com.alibaba.citrus.service.resource.filter.impl.XsltResourceFilterDefinitionParser 2 | -------------------------------------------------------------------------------- /service/resource/src/main/resources/META-INF/services-resource-loading-loaders.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | classpath-loader=com.alibaba.citrus.service.resource.loader.impl.ClasspathResourceLoaderDefinitionParser 2 | webapp-loader=com.alibaba.citrus.service.resource.loader.impl.WebappResourceLoaderDefinitionParser 3 | file-loader=com.alibaba.citrus.service.resource.loader.impl.FileResourceLoaderDefinitionParser 4 | super-loader=com.alibaba.citrus.service.resource.loader.impl.SuperResourceLoaderDefinitionParser -------------------------------------------------------------------------------- /service/resource/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | resource-loading=com.alibaba.citrus.service.resource.impl.ResourceLoadingServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/resource/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/resource-loading/loaders=http://www.alibaba.com/schema/services/resource-loading/loaders; defaultElement=loader; nsPrefix=res-loaders 2 | services/resource-loading/filters=http://www.alibaba.com/schema/services/resource-loading/filters; defaultElement=filter; nsPrefix=res-filters 3 | -------------------------------------------------------------------------------- /service/resource/src/test/config/WEB-INF/aaa/bbb/abc.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /service/resource/src/test/config/WEB-INF/aaa/ccc/def.txt: -------------------------------------------------------------------------------- 1 | hello def 2 | -------------------------------------------------------------------------------- /service/resource/src/test/config/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | app1 10 | com.alibaba.citrus.service.resource.AbstractResourceLoadingTests$MyServlet 11 | 12 | 13 | 14 | app1 15 | /app1/* 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /service/resource/src/test/config/app1/templates/layout/default.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/resource/src/test/config/app1/templates/layout/default.vm -------------------------------------------------------------------------------- /service/resource/src/test/config/appcontext/services1.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /service/resource/src/test/config/appcontext/services2.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /service/resource/src/test/config/common/templates/layout/login.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/resource/src/test/config/common/templates/layout/login.vm -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/abc.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/def.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/test.result: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/test.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/test2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /service/resource/src/test/config/myfolder/testres.txt: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /service/resource/src/test/config/test.txt: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /service/resource/src/test/resources/com/alibaba/citrus/service/resource/support/largeData.txt: -------------------------------------------------------------------------------- 1 | ByteArrayResource [ 2 | [001-010/1024] 00 01 02 03 04 05 06 07 08 09 3 | [011-020/1024] 0a 0b 0c 0d 0e 0f 10 11 12 13 4 | [021-030/1024] 14 15 16 17 18 19 1a 1b 1c 1d 5 | [031-040/1024] 1e 1f 20 21 22 23 24 25 26 27 6 | [041-050/1024] 28 29 2a 2b 2c 2d 2e 2f 30 31 7 | [051-060/1024] 32 33 34 35 36 37 38 39 3a 3b 8 | [061-070/1024] 3c 3d 3e 3f 40 41 42 43 44 45 9 | [071-080/1024] 46 47 48 49 4a 4b 4c 4d 4e 4f 10 | [081-090/1024] 50 51 52 53 54 55 56 57 58 59 11 | [091-100/1024] 5a 5b 5c 5d 5e 5f 60 61 62 63 12 | [101-110/1024] 64 65 66 67 68 69 6a 6b 6c 6d 13 | [111-120/1024] 6e 6f 70 71 72 73 74 75 76 77 14 | [121-128/1024] 78 79 7a 7b 7c 7d 7e 7f 15 | ] -------------------------------------------------------------------------------- /service/template/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | template=com.alibaba.citrus.service.template.impl.TemplateServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/template/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/template/engines=http://www.alibaba.com/schema/services/template/engines; defaultElement=template-engine; nsPrefix=tpl-engines 2 | -------------------------------------------------------------------------------- /service/template/src/test/config/templates/dir1/template1.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/template/src/test/config/templates/dir1/template1.vm -------------------------------------------------------------------------------- /service/template/src/test/config/templates/dir1/template2.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/template/src/test/config/templates/dir1/template2.vm -------------------------------------------------------------------------------- /service/template/src/test/config/templates/dir1/template2_zh_CN.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/template/src/test/config/templates/dir1/template2_zh_CN.vm -------------------------------------------------------------------------------- /service/template/src/test/config/templates/dir2/template1.jsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/template/src/test/config/templates/dir2/template1.jsp -------------------------------------------------------------------------------- /service/template/src/test/config/templates/dir2/template3_zh.jhtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/template/src/test/config/templates/dir2/template3_zh.jhtml -------------------------------------------------------------------------------- /service/upload/.cvsignore: -------------------------------------------------------------------------------- 1 | .project 2 | .classpath 3 | target 4 | classes 5 | tmp 6 | temp 7 | *.log 8 | *.jpx 9 | *.jpx.local 10 | *.library 11 | *.cache 12 | .properties* 13 | *~ 14 | -------------------------------------------------------------------------------- /service/upload/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | upload=com.alibaba.citrus.service.upload.impl.UploadServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /service/upload/src/main/resources/META-INF/services/upload-examples.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /service/upload/src/main/resources/com/alibaba/citrus/service/upload/impl/cfu/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

    8 | Patch包中包含了对Apache commons-fileupload中部分类的补丁。本补丁遵行Apache License 2.0。 9 |

    10 | 11 | 12 | -------------------------------------------------------------------------------- /service/upload/src/test/config/form.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/upload/src/test/config/form.html -------------------------------------------------------------------------------- /service/upload/src/test/config/services-skip-validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/upload/src/test/config/smallfile.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/upload/src/test/config/smallfile.txt -------------------------------------------------------------------------------- /service/uribroker/src/main/resources/META-INF/services-pull-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | uris-tool=com.alibaba.citrus.service.uribroker.support.URIBrokerTool$DefinitionParser -------------------------------------------------------------------------------- /service/uribroker/src/main/resources/META-INF/services-uris-interceptors.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | randomize=com.alibaba.citrus.service.uribroker.impl.interceptor.RandomizeHandlerDefinitionParser 2 | -------------------------------------------------------------------------------- /service/uribroker/src/main/resources/META-INF/services-uris.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | uri=com.alibaba.citrus.service.uribroker.impl.uri.GenericURIBrokerDefinitionParser 2 | content-uri=com.alibaba.citrus.service.uribroker.impl.uri.ContentURIBrokerDefinitionParser 3 | servlet-uri=com.alibaba.citrus.service.uribroker.impl.uri.GenericServletURIBrokerDefinitionParser 4 | servlet-content-uri=com.alibaba.citrus.service.uribroker.impl.uri.ServletContentURIBrokerDefinitionParser 5 | turbine-classic-uri=com.alibaba.citrus.service.uribroker.impl.uri.TurbineClassicURIBrokerDefinitionParser 6 | 7 | uri-bean=com.alibaba.citrus.springext.support.parser.DefaultElementDefinitionParser 8 | -------------------------------------------------------------------------------- /service/uribroker/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | uris=com.alibaba.citrus.service.uribroker.impl.URIBrokerServiceDefinitionParser -------------------------------------------------------------------------------- /service/uribroker/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/uris=http://www.alibaba.com/schema/services/uris 2 | services/uris/interceptors=http://www.alibaba.com/schema/services/uris/interceptors; defaultElement=interceptor; nsPrefix=uri-interceptors 3 | -------------------------------------------------------------------------------- /service/uribroker/src/main/resources/META-INF/spring.schemas: -------------------------------------------------------------------------------- 1 | http\://www.alibaba.com/schema/services/uris/uris-base.xsd=META-INF/services/uris/uris-base.xsd 2 | -------------------------------------------------------------------------------- /service/uribroker/src/test/config/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | servlet 10 | com.alibaba.citrus.service.uribroker.AbstractURIBrokerServiceTests$NoopServlet 11 | 12 | 13 | 14 | servlet 15 | /myservlet/* 16 | 17 | 18 | 19 | servlet 20 | /myservlet2/* 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /service/uribroker/src/test/config/services-root.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /service/velocity/src/main/java/com/alibaba/citrus/service/velocity/FastCloneable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.service.velocity; 19 | 20 | public interface FastCloneable extends Cloneable { 21 | Object createCopy(); 22 | } 23 | -------------------------------------------------------------------------------- /service/velocity/src/main/resources/META-INF/services-template-engines-velocity-plugins.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | renderable-support=com.alibaba.citrus.service.velocity.impl.RenderableHandlerDefinitionParser 2 | escape-support=com.alibaba.citrus.service.velocity.impl.EscapeSupportDefinitionParser 3 | -------------------------------------------------------------------------------- /service/velocity/src/main/resources/META-INF/services-template-engines.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | velocity-engine=com.alibaba.citrus.service.velocity.impl.VelocityEngineDefinitionParser 2 | -------------------------------------------------------------------------------- /service/velocity/src/main/resources/META-INF/services/template/engines/velocity/plugins/renderable-support.xsd: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /service/velocity/src/main/resources/META-INF/spring.configuration-points: -------------------------------------------------------------------------------- 1 | services/template/engines/velocity/plugins=http://www.alibaba.com/schema/services/template/engines/velocity/plugins; defaultElement=plugin; nsPrefix=vm-plugins 2 | -------------------------------------------------------------------------------- /service/velocity/src/main/resources/com/alibaba/citrus/service/velocity/support/escape_macros.vm: -------------------------------------------------------------------------------- 1 | #macro(esc_noesc $content)#escape("noescape")${content}#end#end 2 | #macro(esc_java $content)#escape("java")${content}#end#end 3 | #macro(esc_javascript $content)#escape("javascript")${content}#end#end 4 | #macro(esc_js $content)#escape("javascript")${content}#end#end 5 | #macro(esc_html $content)#escape("html")${content}#end#end 6 | #macro(esc_xml $content)#escape("xml")${content}#end#end 7 | #macro(esc_url $content)#escape("url")${content}#end#end 8 | #macro(esc_sql $content)#escape("sql")${content}#end#end 9 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/services-skip-validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape.vm: -------------------------------------------------------------------------------- 1 | #macro (object) 2 | ${count}. $object 3 | #end 4 | 5 | #object 6 | 7 | #escape ("html") 8 | #object 9 | 10 | #escape ("javascript") 11 | #object 12 | #end 13 | 14 | #object 15 | 16 | #noescape () 17 | #object 18 | 19 | #escape ("url") 20 | #object 21 | #end 22 | 23 | #object 24 | #end 25 | 26 | #object 27 | #end 28 | 29 | #object 30 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_all_types.vm: -------------------------------------------------------------------------------- 1 | #macro (object) 2 | ${count}. $object 3 | #end 4 | 5 | #escape ("noescape") #object #end 6 | #escape ("java") #object #end 7 | #escape ("javascript") #object #end 8 | #escape ("html") #object #end 9 | #escape ("xml") #object #end 10 | #escape ("url") #object #end 11 | #escape ("sql") #object #end 12 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_define.vm: -------------------------------------------------------------------------------- 1 | #define( $block )Hello $who#end 2 | 3 | #set( $who = 'World!' ) 4 | 1. $block 5 | 6 | #set( $who = '' ) 7 | 2. $block 8 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_interpolation.vm: -------------------------------------------------------------------------------- 1 | #set ($value = "$object") 2 | 3 | $count. $value 4 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_macros.vm: -------------------------------------------------------------------------------- 1 | #escape ("html") 2 | ${count}. #esc_noesc ($object) 3 | ${count}. #esc_java ($object) 4 | ${count}. #esc_javascript ($object) 5 | ${count}. #esc_js ($object) 6 | ${count}. #esc_html ($object) 7 | ${count}. #esc_xml ($object) 8 | ${count}. #esc_url ($object) 9 | ${count}. #esc_sql ($object) 10 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_object_noescape.vm: -------------------------------------------------------------------------------- 1 | $myref -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_parse.vm: -------------------------------------------------------------------------------- 1 | #macro (object) 2 | ${count}. $object 3 | #end 4 | 5 | #escape ("html") 6 | #object 7 | #parse ("escape/test_escape_parse_sub.vm") 8 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_parse_sub.vm: -------------------------------------------------------------------------------- 1 | #macro (object) 2 | ${count}. $object 3 | #end 4 | 5 | #object -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_rules.vm: -------------------------------------------------------------------------------- 1 | 1. ${value} 2 | 2. $!{jsValue} 3 | 3. $control.setValue("") 4 | 4. $!Screen_Placeholder 5 | 5. $stringescapeutil.escapeURL("") 6 | 6. #escape("html")${Screen_Placeholder}#end 7 | 7. #noescape()${jsValue}#end 8 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_wrong_args_0.vm: -------------------------------------------------------------------------------- 1 | #escape () 2 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_wrong_args_1.vm: -------------------------------------------------------------------------------- 1 | #noescape ("html") 2 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_wrong_args_2.vm: -------------------------------------------------------------------------------- 1 | #escape ("html" "extra arg") 2 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/escape/test_escape_wrong_type.vm: -------------------------------------------------------------------------------- 1 | #escape ("unknown") 2 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/macros/hello.vm: -------------------------------------------------------------------------------- 1 | #macro (outterHello) 2 | outterHello 3 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/macros/inner/hello.vm: -------------------------------------------------------------------------------- 1 | #macro (hello $name) 2 | hello, $name 3 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/macros/world.vm: -------------------------------------------------------------------------------- 1 | #macro (world) 2 | #hello ("world") 3 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test.vm: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test2.vm: -------------------------------------------------------------------------------- 1 | test2 -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_handlers.vm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_local_context.vm: -------------------------------------------------------------------------------- 1 | #set ($varInContext="hello") 2 | 3 | $varInContext 4 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_macros.vm: -------------------------------------------------------------------------------- 1 | #world 2 | #outterHello -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_pluginMacros.vm: -------------------------------------------------------------------------------- 1 | #macro1 2 | #macro2 3 | -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_render.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/service/velocity/src/test/config/templates/test_render.vm -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_render_error.vm: -------------------------------------------------------------------------------- 1 | #if (true) -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_renderable.vm: -------------------------------------------------------------------------------- 1 | $object -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates/test_set_null.vm: -------------------------------------------------------------------------------- 1 | #set ($a="hello") 2 | #set ($a=$b) 3 | $a -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates_with_macros/VM_global_library.vm: -------------------------------------------------------------------------------- 1 | #macro (defaultMacro) 2 | haha 3 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/config/templates_with_macros/test_macros.vm: -------------------------------------------------------------------------------- 1 | #defaultMacro -------------------------------------------------------------------------------- /service/velocity/src/test/resources/com/alibaba/citrus/service/velocity/impl/plugin_macro1.vm: -------------------------------------------------------------------------------- 1 | #macro (macro1) 2 | macro1 3 | #end -------------------------------------------------------------------------------- /service/velocity/src/test/resources/com/alibaba/citrus/service/velocity/impl/plugin_macro2.vm: -------------------------------------------------------------------------------- 1 | #macro (macro2) 2 | macro2 3 | #end -------------------------------------------------------------------------------- /test/util/src/test/config/dummy.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/test/util/src/test/config/dummy.txt -------------------------------------------------------------------------------- /test/webx/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | servlet-test-container=com.alibaba.citrus.test.util.ServletTestContainer$DefinitionParser 2 | -------------------------------------------------------------------------------- /test/webx/src/main/resources/com/alibaba/citrus/test/context/context-template.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /test/webx/src/test/config/springextContextLoaderTests-context.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /webx/async/src/main/resources/META-INF/services-pipeline-valves.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | performRunnableAsync=com.alibaba.citrus.async.pipeline.valve.PerformRunnableAsyncValve$DefinitionParser 2 | doPerformRunnable=com.alibaba.citrus.async.pipeline.valve.DoPerformRunnableValve$DefinitionParser 3 | -------------------------------------------------------------------------------- /webx/async/src/test/config/doPerformRunnableValve.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /webx/dev/src/main/java/com/alibaba/citrus/dev/handler/util/TextValue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.dev.handler.util; 19 | 20 | public class TextValue extends StyledValue { 21 | public TextValue(String text) { 22 | super(text); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /webx/dev/src/main/resources/META-INF/webx.internal-request-handlers: -------------------------------------------------------------------------------- 1 | Explorer=com.alibaba.citrus.dev.handler.impl.ExplorerHandler 2 | -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/accessControl.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | .webx-access-denied { 4 | 5 | } 6 | 7 | .webx-access-denied pre { 8 | border: solid 1px grey; 9 | margin: 1em 0; 10 | padding: 1em; 11 | } -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/images/arrow_tab.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/images/arrow_tab.gif -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/images/close.png -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/images/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/images/open.png -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/component/tabs.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## Tab标签控件 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | 9 |
    10 | 13 |
    14 | 15 | #tab 16 | 17 | ${desc} 18 | $#{subnav} 19 | 20 | 21 | #selectedAttr 22 | $#{SPACE}class="selected" 23 | #end 24 | 25 | #hrefAttr 26 | $#{SPACE}href="${hrefLink}" 27 | #end 28 | 29 | #onclickAttr 30 | $#{SPACE}onclick="${onclickScript}" 31 | #end 32 | 33 | #subnav 34 | 35 | #end 36 | #end 37 | -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/impl/explorer.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 浏览容器的内容 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | 9 | ${tabs} 10 | ${explorer: #*} 11 | 12 | #beans (inc/beans.htm) 13 | #configurations (inc/configurations.htm) 14 | #resolvableDependencies (inc/deps.htm) 15 | #resources (inc/resources.htm) 16 | #uris (inc/uris.htm) 17 | #pullTools (inc/pullTools.htm) 18 | -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/impl/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/impl/images/close.png -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/impl/images/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/impl/images/open.png -------------------------------------------------------------------------------- /webx/dev/src/main/resources/com/alibaba/citrus/dev/handler/impl/inc/beans.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 列出所有beans 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | 9 |

    ${beanCount} beans in ${contextName} - ${configLocations}

    10 |
    11 | ${beans} 12 |
    13 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | webx-configuration=com.alibaba.citrus.webx.config.impl.WebxConfigurationDefinitionParser 2 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/META-INF/webx.internal-request-handlers: -------------------------------------------------------------------------------- 1 | Webx/Schema=com.alibaba.citrus.webx.handler.impl.SchemaExporterHandler 2 | 3 | Webx/Info/Request+Info = com.alibaba.citrus.webx.handler.impl.info.RequestInfoHandler 4 | Webx/Info/Environment+Variables = com.alibaba.citrus.webx.handler.impl.info.EnvironmentVariablesHandler 5 | Webx/Info/System+Properties = com.alibaba.citrus.webx.handler.impl.info.SystemPropertiesHandler 6 | Webx/Info/System+Info = com.alibaba.citrus.webx.handler.impl.info.SystemInfoHandler 7 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/environmentVariables.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/environmentVariables.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 环境变量信息 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 |

    Environment Variables

    9 |
    10 | ${env} 11 |
    12 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/footer.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | img#webx-logo { 4 | vertical-align: bottom; 5 | padding: 10px 20px 0 20px; 6 | } 7 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/footer.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 页脚 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 |

    9 | 10 | 11 | Valid XHTML 1.1 13 | 14 |

    15 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_h.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_h.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_h_active.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_h_active.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_v.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_v.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_v_active.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/arrow_v_active.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/close.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/home1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/home1.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/home2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/home2.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/open.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/webx3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webx/citrus/adfceaab120661e78ee7608f3335eaf863693a38/webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/images/webx3.gif -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/keyValues.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | tr.row-odd { 4 | background-color: #EEEEEE; 5 | } 6 | 7 | tr.row-even { 8 | background-color: white; 9 | } 10 | 11 | tr.row-highlight { 12 | background-color: silver; 13 | } 14 | 15 | td.item-key { 16 | width: 20%; 17 | font-size: small; 18 | font-weight: bold; 19 | } 20 | 21 | td.item-key .item-count { 22 | color: grey; 23 | font-size: smaller; 24 | } 25 | 26 | td.item-value ul { 27 | margin: 0; 28 | padding: 0; 29 | list-style: none; 30 | } 31 | 32 | td.item-value .item-entry-key { 33 | color: dark; 34 | font-size: smaller; 35 | font-weight: bold; 36 | } 37 | 38 | td.item-value .item-entry-value { 39 | display: inline; 40 | } 41 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/keyValues.js: -------------------------------------------------------------------------------- 1 | function registerOddEvenRows() { 2 | $$('tr:nth-child(odd)').each(function (e) { 3 | e.observe('mouseover', function (event) { 4 | event.findElement('tr').className = 'row-highlight'; 5 | }); 6 | e.observe('mouseout', function (event) { 7 | event.findElement('tr').className = 'row-odd'; 8 | }); 9 | e.className = 'row-odd'; 10 | }); 11 | $$('tr:nth-child(even)').each(function (e) { 12 | e.observe('mouseover', function (event) { 13 | event.findElement('tr').className = 'row-highlight'; 14 | }); 15 | e.observe('mouseout', function (event) { 16 | event.findElement('tr').className = 'row-even'; 17 | }); 18 | e.className = 'row-even'; 19 | }); 20 | } 21 | 22 | document.observe("dom:loaded", function () { 23 | registerOddEvenRows(); 24 | }); 25 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/request.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | .webx-request h2 { 4 | background-color: #E0E0E0; 5 | color: navy; 6 | font-size: larger; 7 | font-weight: bold; 8 | } 9 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/request.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## Request请求信息 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 |

    Request

    9 |
    10 |

    Basic Info

    11 | ${basicInfo} 12 | 13 |

    Connection Info

    14 | ${connectionInfo} 15 | 16 |

    Authentication Info

    17 | ${authInfo} 18 | 19 |

    Misc

    20 | ${misc} 21 | 22 |

    Parameters

    23 | ${parameters} 24 | 25 |

    Headers

    26 | ${headers} 27 | 28 |

    Cookies

    29 | ${cookies} 30 | 31 |

    Request Attributes

    32 | ${attributes} 33 | 34 |

    Context Attributes

    35 | ${contextAttributes} 36 |
    37 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/systemInfo.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/systemInfo.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## System 基本信息 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 |

    System Info

    9 |
    10 | ${sysinfo} 11 |
    12 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/systemProperties.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/component/systemProperties.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## System Properties信息 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 |

    System Properties

    9 |
    10 | ${properties} 11 |
    12 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/error/detailedError.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 开发模式详细出错页面 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${exception} 9 | 10 | ${request} 11 | ${systemProperties} 12 | ${env} 13 | ${systemInfo} 14 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/head.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 页头 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${headComponents: #css, #js} 9 | 10 | #css 11 | 12 | #end 13 | #js 14 | 16 | #end 17 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/info/environmentVariables.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 开发模式页面:显示环境变量 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${env} 9 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/info/requestInfo.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 开发模式页面:显示请求信息 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${request} 9 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/info/systemInfo.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 开发模式页面:显示系统信息 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${systemInfo} 9 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/info/systemProperties.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 开发模式页面:显示系统属性 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${systemProperties} 9 | -------------------------------------------------------------------------------- /webx/framework/src/main/resources/com/alibaba/citrus/webx/handler/impl/main.htm: -------------------------------------------------------------------------------- 1 | ## -------------------------- 2 | ## 开发模式主页 3 | ## 4 | #@ charset UTF-8 5 | #@ trimming on 6 | #@ whitespace collapse 7 | ## -------------------------- 8 | ${sysinfo} 9 | -------------------------------------------------------------------------------- /webx/framework/src/test/config/app1/plaintext.txt: -------------------------------------------------------------------------------- 1 | hello, app1 -------------------------------------------------------------------------------- /webx/framework/src/test/config/app2/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | com.alibaba.citrus.webx.context.WebxContextLoaderListener 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /webx/framework/src/test/config/app2/WEB-INF/webx.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /webx/framework/src/test/config/app3/WEB-INF/webx.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /webx/framework/src/test/config/app4/WEB-INF/webx.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /webx/framework/src/test/config/my/app5/plaintext.txt: -------------------------------------------------------------------------------- 1 | hello, app5 -------------------------------------------------------------------------------- /webx/framework/src/test/config/plaintext.txt: -------------------------------------------------------------------------------- 1 | hello, app4 -------------------------------------------------------------------------------- /webx/framework/src/test/config/webx-configuration-skip-validation.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /webx/framework/src/test/java/com/alibaba/citrus/webx/handler/Handler2.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.webx.handler; 19 | 20 | public abstract class Handler2 { 21 | } 22 | -------------------------------------------------------------------------------- /webx/framework/src/test/java/com/alibaba/citrus/webx/handler/Handler3.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.citrus.webx.handler; 19 | 20 | public class Handler3 { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /webx/framework/src/test/resources/META-INF/internal-request-handlers-test-1: -------------------------------------------------------------------------------- 1 | /aa/cc/ = com.alibaba.citrus.webx.handler.Handler1 2 | /aa/bb//cc = com.alibaba.citrus.webx.handler.Handler1 3 | /cc= 4 | =com.alibaba.citrus.webx.handler.Handler1 5 | error=com.alibaba.citrus.webx.handler.Handler1 6 | abstract= com.alibaba.citrus.webx.handler.Handler2 7 | wrongtype=com.alibaba.citrus.webx.handler.Handler3 8 | -------------------------------------------------------------------------------- /webx/framework/src/test/resources/META-INF/mycomponent/a.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /webx/framework/src/test/resources/META-INF/mycomponent/b.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services-data-resolver-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | turbine-rundata-resolver=com.alibaba.citrus.turbine.dataresolver.impl.TurbineRunDataResolverFactory$DefinitionParser 2 | parameter-resolver=com.alibaba.citrus.turbine.dataresolver.impl.ParameterResolverFactory$DefinitionParser 3 | form-resolver=com.alibaba.citrus.turbine.dataresolver.impl.FormResolverFactory$DefinitionParser 4 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services-form-validators.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | csrf-validator=com.alibaba.citrus.turbine.form.impl.validation.CsrfFormValidator$DefinitionParser 2 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services-pipeline-conditions.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | target-condition=com.alibaba.citrus.turbine.pipeline.condition.TargetCondition$DefinitionParser 2 | target-extension-condition=com.alibaba.citrus.turbine.pipeline.condition.TargetExtensionCondition$DefinitionParser 3 | path-condition=com.alibaba.citrus.turbine.pipeline.condition.PathCondition$DefinitionParser 4 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services-pull-factories.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | control-tool=com.alibaba.citrus.turbine.util.ControlTool$DefinitionParser 2 | rundata-tool=com.alibaba.citrus.turbine.util.TurbineRunDataTool$DefinitionParser 3 | csrfToken=com.alibaba.citrus.turbine.util.CsrfToken$DefinitionParser 4 | page-tool=com.alibaba.citrus.turbine.util.HtmlPageAttributeTool$DefinitionParser 5 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services-uris.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | turbine-uri=com.alibaba.citrus.turbine.uribroker.uri.impl.TurbineURIBrokerDefinitionParser 2 | turbine-content-uri=com.alibaba.citrus.turbine.uribroker.uri.impl.TurbineContentURIBrokerDefinitionParser 3 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services.bean-definition-parsers: -------------------------------------------------------------------------------- 1 | page-authorization=com.alibaba.citrus.turbine.auth.impl.PageAuthorizationServiceDefinitionParser 2 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services/pipeline/valves/prepareForTurbine.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /webx/turbine/src/main/resources/META-INF/services/pull/factories/page-tool.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/app2/control/control_set.vm: -------------------------------------------------------------------------------- 1 | #set ($var1="app2") 2 | #set ($var2=$null) -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/app2/control/myControl.vm: -------------------------------------------------------------------------------- 1 | hi, ${greeting} -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/control/control_nest.vm: -------------------------------------------------------------------------------- 1 | #set ($var1="app1") 2 | $control.setTemplate("app2:control_set").export("var1", "var2") 3 | 1. $var1 4 | 2. $var2 5 | -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/control/control_set.vm: -------------------------------------------------------------------------------- 1 | #set ($var1="app1") 2 | #set ($var2=$null) -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/control/myControl.vm: -------------------------------------------------------------------------------- 1 | hello, ${greeting} -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/control/myOtherControl.vm: -------------------------------------------------------------------------------- 1 | other control -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/control/nestedControl.vm: -------------------------------------------------------------------------------- 1 | hello, 2 | $control.setModule("myControlWithError") 3 | world -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/mylayout/aaa/bbb/default.vm: -------------------------------------------------------------------------------- 1 | $screen_placeholder -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/mylayout/aaa/bbb/myModule.vm: -------------------------------------------------------------------------------- 1 | $screen_placeholder and layout -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/mylayout/aaa/bbb/myOtherModule.vm: -------------------------------------------------------------------------------- 1 | $screen_placeholder and layout2 -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/mylayout/aaa/default.vm: -------------------------------------------------------------------------------- 1 | $screen_placeholder Default -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/mylayout/ccc/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myprefix.locale/aaa/bbb/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myprefix.locale/aaa/bbb/default_zh_TW.jsp: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myprefix.locale/aaa/bbb/myOtherModule_zh.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myprefix.locale/aaa/default.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myprefix.locale/aaa/default_zh.jsp: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myprefix.locale/ccc/default_zh.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/templates/myscreen/aaa/bbb/myModule.vm: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /webx/turbine/src/test/config/test.txt: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /webx/turbine/src/test/java/com/alibaba/test/module/screen/MyDefaultModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.alibaba.test.module.screen; 19 | 20 | public class MyDefaultModule extends AbstractModule { 21 | public void execute() throws Exception { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /webx/turbine/src/test/resources/app1/module/control/myprod/MyControl.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package app1.module.control.myprod; 19 | 20 | class MyControl { 21 | public void execute() { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /webx/turbine/src/test/resources/app1/module/screens/AbstractScreen.groovy: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2002-2012 Alibaba Group Holding Limited. 3 | * All rights reserved. 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package app1.module.screens; 19 | 20 | import com.alibaba.citrus.service.moduleloader.Module; 21 | 22 | abstract class AbstractScreen implements Module { 23 | } 24 | --------------------------------------------------------------------------------