You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2021/01/22 09:13:29 UTC
[myfaces] branch master updated: fix eol
This is an automated email from the ASF dual-hosted git repository.
bommel pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces.git
The following commit(s) were added to refs/heads/master by this push:
new 0ba83af fix eol
new e153f0b Merge pull request #158 from bohmber/master
0ba83af is described below
commit 0ba83afb31c60f37e7c6a3848c44a10a8cb11a1f
Author: Bernd Bohmann <bo...@apache.org>
AuthorDate: Wed Jan 20 18:55:12 2021 +0100
fix eol
---
.../jakarta/faces/annotation/ApplicationMap.java | 74 +-
.../java/jakarta/faces/annotation/FacesConfig.java | 88 +-
.../java/jakarta/faces/annotation/FlowMap.java | 74 +-
.../java/jakarta/faces/annotation/HeaderMap.java | 74 +-
.../jakarta/faces/annotation/HeaderValuesMap.java | 74 +-
.../jakarta/faces/annotation/InitParameterMap.java | 74 +-
.../jakarta/faces/annotation/ManagedProperty.java | 74 +-
.../jakarta/faces/annotation/RequestCookieMap.java | 74 +-
.../java/jakarta/faces/annotation/RequestMap.java | 74 +-
.../faces/annotation/RequestParameterMap.java | 74 +-
.../annotation/RequestParameterValuesMap.java | 74 +-
.../java/jakarta/faces/annotation/SessionMap.java | 74 +-
.../java/jakarta/faces/annotation/ViewMap.java | 74 +-
.../faces/application/ResourceVisitOption.java | 56 +-
.../jakarta/faces/application/ViewVisitOption.java | 58 +-
.../jakarta/faces/component/UIImportConstants.java | 168 +-
.../java/jakarta/faces/component/_UIWebsocket.java | 200 +-
.../faces/component/html/_ChangeProperty.java | 64 +-
.../faces/component/html/_SelectProperty.java | 64 +-
.../search/ComponentNotFoundException.java | 96 +-
.../component/search/SearchExpressionContext.java | 114 +-
.../search/SearchExpressionContextFactory.java | 96 +-
.../component/search/SearchExpressionHandler.java | 138 +-
.../search/SearchExpressionHandlerWrapper.java | 220 +-
.../component/search/SearchExpressionHint.java | 84 +-
.../component/search/SearchKeywordContext.java | 150 +-
.../component/search/SearchKeywordResolver.java | 132 +-
.../component/search/UntargetableComponent.java | 54 +-
.../jakarta/faces/event/PostRenderViewEvent.java | 84 +-
.../java/jakarta/faces/event/WebsocketEvent.java | 242 +-
.../java/jakarta/faces/model/FacesDataModel.java | 78 +-
.../jakarta/faces/model/IterableDataModel.java | 362 +--
api/src/main/java/jakarta/faces/push/Push.java | 74 +-
.../main/java/jakarta/faces/push/PushContext.java | 90 +-
.../core/api/shared/ELContextDecorator.java | 212 +-
.../core/api/shared/FacesMessageInterpolator.java | 110 +-
.../core/api/shared/ValueReferenceResolver.java | 132 +-
.../api/shared/lang/LambdaPropertyDescriptor.java | 88 +-
.../api/shared/lang/PropertyDescriptorUtils.java | 686 +++---
.../api/shared/lang/PropertyDescriptorWrapper.java | 172 +-
.../deployment/ManagedPropertyBuildStep.java | 154 +-
.../quarkus/runtime/MyFacesRecorder.java | 136 +-
.../quarkus/runtime/QuarkusFacesInitilializer.java | 120 +-
.../runtime/application/QuarkusApplication.java | 118 +-
.../application/QuarkusApplicationFactory.java | 100 +-
.../runtime/exception/QuarkusExceptionHandler.java | 116 +-
.../exception/QuarkusExceptionHandlerFactory.java | 74 +-
.../producer/ManagedPropertyBeanCreator.java | 96 +-
.../runtime/scopes/QuarkusFacesScopeContext.java | 180 +-
.../runtime/scopes/QuarkusFlowScopedContext.java | 182 +-
.../runtime/scopes/QuarkusViewScopeContext.java | 180 +-
.../scopes/QuarkusViewTransientScopeContext.java | 182 +-
.../runtime/spi/QuarkusAnnotationProvider.java | 104 +-
.../quarkus/runtime/spi/QuarkusCdiELResolver.java | 262 +--
.../runtime/spi/QuarkusELResolverBuilder.java | 90 +-
.../runtime/spi/QuarkusFacesFlowProvider.java | 76 +-
.../runtime/spi/QuarkusFactoryFinderProvider.java | 206 +-
.../spi/QuarkusFactoryFinderProviderFactory.java | 68 +-
.../runtime/spi/QuarkusInjectionProvider.java | 100 +-
.../core/extensions/quarkus/showcase/view/Car.java | 240 +-
.../quarkus/showcase/view/CarService.java | 204 +-
.../extensions/quarkus/showcase/view/FileView.java | 114 +-
.../quarkus/showcase/view/InputController.java | 92 +-
.../quarkus/showcase/view/LazyCarDataModel.java | 226 +-
.../quarkus/showcase/view/LazySorter.java | 112 +-
.../extensions/quarkus/showcase/view/LazyView.java | 164 +-
.../showcase/view/MethodHandleELResolverBean.java | 176 +-
.../quarkus/showcase/view/MyBacking.java | 108 +-
.../quarkus/showcase/view/MyCollection.java | 52 +-
.../quarkus/showcase/view/MyCollectionModel.java | 78 +-
.../quarkus/showcase/view/MyConverter.java | 78 +-
.../quarkus/showcase/view/MyConverterManaged.java | 78 +-
.../quarkus/showcase/view/MyValidator.java | 86 +-
.../quarkus/showcase/view/SocketView.java | 130 +-
.../showcase/src/main/resources/META-INF/web.xml | 82 +-
impl/pom.xml | 2462 ++++++++++----------
.../application/ApplicationImplEventManager.java | 736 +++---
.../application/FacesServletMappingUtils.java | 932 ++++----
.../myfaces/application/ViewResourceIterator.java | 324 +--
.../java/org/apache/myfaces/cdi/FacesScoped.java | 80 +-
.../myfaces/cdi/config/FacesConfigBeanHolder.java | 78 +-
.../myfaces/cdi/config/FacesConfigExtension.java | 140 +-
.../managedproperty/ManagedPropertyExtension.java | 136 +-
.../cdi/managedproperty/ManagedPropertyInfo.java | 156 +-
.../managedproperty/ManagedPropertyProducer.java | 184 +-
.../cdi/model/FacesDataModelAnnotationLiteral.java | 146 +-
.../myfaces/cdi/model/FacesDataModelExtension.java | 150 +-
.../myfaces/cdi/model/FacesDataModelInfo.java | 178 +-
.../myfaces/cdi/model/FacesDataModelManager.java | 340 +--
.../myfaces/cdi/view/ViewTransientScoped.java | 80 +-
.../wrapper/FacesBehaviorAnnotationLiteral.java | 150 +-
.../cdi/wrapper/FacesBehaviorCDIWrapper.java | 232 +-
.../cdi/wrapper/FacesClientBehaviorCDIWrapper.java | 276 +--
.../wrapper/FacesConverterAnnotationLiteral.java | 176 +-
.../cdi/wrapper/FacesConverterCDIWrapper.java | 316 +--
.../wrapper/FacesValidatorAnnotationLiteral.java | 162 +-
.../cdi/wrapper/FacesValidatorCDIWrapper.java | 260 +--
.../component/search/AllSearchKeywordResolver.java | 146 +-
.../search/ChildSearchKeywordResolver.java | 232 +-
...positeComponentParentSearchKeywordResolver.java | 116 +-
.../search/CompositeSearchKeywordResolver.java | 222 +-
.../search/FormSearchKeywordResolver.java | 138 +-
.../component/search/IdSearchKeywordResolver.java | 326 +--
.../search/MyFacesSearchExpressionHints.java | 70 +-
.../NamingContainerSearchKeywordResolver.java | 122 +-
.../search/NextSearchKeywordResolver.java | 168 +-
.../search/NoneSearchKeywordResolver.java | 134 +-
.../search/ParentSearchKeywordResolver.java | 116 +-
.../search/PreviousSearchKeywordResolver.java | 170 +-
.../search/RootSearchKeywordResolver.java | 118 +-
.../search/SearchExpressionContextFactoryImpl.java | 120 +-
.../search/SearchExpressionContextImpl.java | 160 +-
.../search/SearchExpressionHandlerImpl.java | 1722 +++++++-------
.../search/ThisSearchKeywordResolver.java | 114 +-
.../validate/CopyBeanInterceptorELResolver.java | 176 +-
.../validate/ValidateWholeBeanComponent.java | 228 +-
.../component/validate/WholeBeanValidator.java | 842 +++----
.../myfaces/component/visit/MyFacesVisitHints.java | 72 +-
.../annotation/CdiAnnotationProviderExtension.java | 170 +-
.../config/element/ComponentTagDeclaration.java | 74 +-
.../impl/element/ComponentTagDeclarationImpl.java | 146 +-
.../myfaces/context/flash/ReleasableFlash.java | 64 +-
.../el/resolver/EmptyStringToNullELResolver.java | 148 +-
.../myfaces/el/resolver/FlashELResolver.java | 696 +++---
.../el/resolver/ImportConstantsELResolver.java | 508 ++--
.../myfaces/el/resolver/LambdaBeanELResolver.java | 332 +--
.../PostClientWindowAndViewInitializedEvent.java | 58 +-
.../java/org/apache/myfaces/flow/FlowUtils.java | 146 +-
.../apache/myfaces/flow/NavigationCaseImpl.java | 740 +++---
.../flow/builder/NavigationCaseBuilderImpl.java | 280 +--
.../myfaces/lifecycle/RestoreViewSupport.java | 218 +-
.../clientwindow/WindowContextConfig.java | 302 +--
.../myfaces/push/AbstractWebsocketComponent.java | 150 +-
.../java/org/apache/myfaces/push/EndpointImpl.java | 270 +--
.../main/java/org/apache/myfaces/push/Json.java | 780 +++----
.../myfaces/push/WebsocketComponentRenderer.java | 542 ++---
.../apache/myfaces/push/WebsocketConfigurator.java | 180 +-
.../apache/myfaces/push/WebsocketFacesInit.java | 84 +-
.../apache/myfaces/push/WebsocketInitRenderer.java | 98 +-
.../WebsocketSessionClusterSerializedRestore.java | 158 +-
.../org/apache/myfaces/push/_WebsocketInit.java | 102 +-
.../myfaces/push/cdi/PushContextCDIExtension.java | 106 +-
.../myfaces/push/cdi/PushContextFactoryBean.java | 88 +-
.../apache/myfaces/push/cdi/PushContextImpl.java | 458 ++--
.../myfaces/push/cdi/WebsocketApplicationBean.java | 186 +-
.../cdi/WebsocketApplicationSessionHolder.java | 610 ++---
.../apache/myfaces/push/cdi/WebsocketChannel.java | 186 +-
.../myfaces/push/cdi/WebsocketChannelMetadata.java | 252 +-
.../myfaces/push/cdi/WebsocketSessionBean.java | 346 +--
.../apache/myfaces/push/cdi/WebsocketViewBean.java | 316 +--
.../html/EarlyFlushHtmlResponseWriterImpl.java | 202 +-
.../renderkit/html/HtmlCommandScriptRenderer.java | 362 +--
.../renderkit/html/util/AjaxScriptBuilder.java | 600 ++---
.../html/util/ClientBehaviorRendererUtils.java | 994 ++++----
.../renderkit/html/util/SelectItemInfo.java | 152 +-
.../renderkit/html/util/SelectItemsUtils.java | 436 ++--
.../ClassLoaderResourceLoaderIterator.java | 728 +++---
.../ExternalContextResourceLoaderIterator.java | 356 +--
.../org/apache/myfaces/spi/StateCacheProvider.java | 84 +-
.../myfaces/spi/StateCacheProviderWrapper.java | 110 +-
.../org/apache/myfaces/util/NavigationUtils.java | 298 +--
.../apache/myfaces/util/lang/ArrayIterator.java | 108 +-
.../util/lang/FastByteArrayInputStream.java | 196 +-
.../util/lang/FastByteArrayOutputStream.java | 220 +-
.../java/org/apache/myfaces/util/lang/Hex.java | 352 +--
.../myfaces/util/lang/SkipMatchIterator.java | 204 +-
...DynamicComponentRefreshTransientBuildEvent.java | 82 +-
...DynamicComponentRefreshTransientBuildEvent.java | 84 +-
.../FaceletViewDeclarationLanguageBase.java | 206 +-
.../view/facelets/LocationAwareFacesException.java | 180 +-
...amicComponentRefreshTransientBuildCallback.java | 94 +-
.../tag/ComponentTagDeclarationLibrary.java | 540 ++---
.../facelets/tag/LambdaMetadataTargetImpl.java | 264 +--
.../view/facelets/tag/LegacyUserTagHandler.java | 316 +--
.../myfaces/view/facelets/tag/NullMetadata.java | 74 +-
.../jsf/ComponentRelocatableResourceHandler.java | 110 +-
.../facelets/tag/jsf/core/WebsocketHandler.java | 114 +-
.../facelets/tag/jstl/core/LegacySetHandler.java | 296 +--
.../facelets/tag/ui/LegacyCompositionHandler.java | 342 +--
.../facelets/tag/ui/LegacyDecorateHandler.java | 520 ++---
.../view/facelets/tag/ui/LegacyParamHandler.java | 190 +-
.../util/FaceletsTemplateMappingUtils.java | 82 +-
.../util/FaceletsViewDeclarationLanguageUtils.java | 320 +--
.../myfaces/webapp/MyFacesHttpSessionListener.java | 212 +-
impl/src/main/resources/META-INF/web-fragment.xml | 70 +-
.../jakarta/faces/component/UIOutputPSSTest.java | 1130 ++++-----
.../apache/myfaces/application/flow/Flow5Bean.java | 88 +-
.../FlowResourceHandlerMyFacesRequestTestCase.java | 196 +-
.../viewstate/ClientSideStateCacheTest.java | 428 ++--
.../SerializedViewCollectionTestCase.java | 644 ++---
.../myfaces/component/search/SearchBean.java | 248 +-
.../component/search/SearchExpressionImplTest.java | 822 +++----
.../ConfigFilesXmlValidationUtilsTestCase.java | 220 +-
.../myfaces/lifecycle/DummyPhaseListenerA.java | 128 +-
.../myfaces/lifecycle/DummyPhaseListenerB.java | 104 +-
.../lifecycle/PhaseListenerOrderingTest.java | 118 +-
.../html/HtmlResponseStateManagerTest.java | 118 +-
.../myfaces/resource/ResourceLoaderUtilsTest.java | 96 +-
.../facelets/TemplateInResourcesDirTestCase.java | 130 +-
.../myfaces/view/facelets/bean/ViewBean.java | 146 +-
.../facelets/compiler/SkipNamespaceUnitTest.java | 274 +--
.../facelets/el/CacheELExpressionsTestCase.java | 174 +-
.../myfaces/view/facelets/el/ELTextTest.java | 162 +-
.../pss/acid/component/UISimpleComponent1.java | 116 +-
.../pss/acid/component/UISimpleComponent2.java | 136 +-
.../facelets/pss/acid/managed/AcidTestBean.java | 172 +-
.../pss/acid/managed/CheckActionEventBean.java | 104 +-
.../pss/acid/managed/CustomSessionBean.java | 112 +-
.../facelets/pss/acid/managed/ValueHolder.java | 88 +-
.../view/facelets/stateless/StatelessTest.java | 178 +-
.../view/facelets/tag/TagAttributesImplTest.java | 118 +-
.../tag/jsf/core/validation/CustomerBean.java | 108 +-
.../view/facelets/tag/ui/RemoveTestCase.java | 208 +-
.../test/component/InputTextWithClass.java | 52 +-
.../view/facelets/test/component/MyUIPanel1.java | 74 +-
.../view/facelets/test/component/MyUIPanel2.java | 78 +-
.../view/facelets/test/component/MyUIPanel3.java | 74 +-
.../src/test/resources/arquillian.xml | 74 +-
.../exactMapping/src/test/resources/arquillian.xml | 74 +-
.../src/test/resources/arquillian.xml | 74 +-
.../src/test/resources/arquillian.xml | 74 +-
.../src/test/resources/arquillian.xml | 74 +-
test/pom.xml | 240 +-
.../test/base/junit/AbstractHtmlUnitTestCase.java | 632 ++---
.../test/base/junit/runners/NamedRunner.java | 252 +-
.../test/base/junit/runners/TestClassLoader.java | 718 +++---
.../junit/runners/TestPerClassLoaderRunner.java | 598 ++---
.../test/config/ResourceBundleVarNames.java | 100 +-
.../myfaces/test/el/ExpressionTokenizer.java | 386 +--
.../test/el/FacesVariableResolverChainWrapper.java | 286 +--
.../test/el/MockCompositeValueExpression.java | 360 +--
.../myfaces/test/el/ReservedWordsELResolver.java | 244 +-
.../myfaces/test/mock/MockFacesContext10.java | 660 +++---
.../myfaces/test/mock/MockRequestDispatcher.java | 120 +-
.../test/mock/MockResponseStateManager.java | 792 +++----
.../myfaces/test/mock/MockServletInputStream.java | 146 +-
.../myfaces/test/mock/MockServletRegistration.java | 202 +-
.../myfaces/test/mock/_AbstractAttributeMap.java | 896 +++----
.../apache/myfaces/test/mock/_ApplicationMap.java | 156 +-
.../org/apache/myfaces/test/mock/_CookieMap.java | 334 +--
.../java/org/apache/myfaces/test/mock/_ELText.java | 888 +++----
.../java/org/apache/myfaces/test/mock/_Hex.java | 682 +++---
.../myfaces/test/mock/_InitParameterMap.java | 160 +-
.../apache/myfaces/test/mock/_NullEnumeration.java | 98 +-
.../myfaces/test/mock/_RequestHeaderMap.java | 160 +-
.../myfaces/test/mock/_RequestHeaderValuesMap.java | 184 +-
.../org/apache/myfaces/test/mock/_RequestMap.java | 156 +-
.../myfaces/test/mock/_RequestParameterMap.java | 132 +-
.../test/mock/_RequestParameterValuesMap.java | 134 +-
.../org/apache/myfaces/test/mock/_SessionMap.java | 176 +-
.../mock/lifecycle/ApplyRequestValuesExecutor.java | 94 +-
.../mock/lifecycle/DefaultRestoreViewSupport.java | 244 +-
.../mock/lifecycle/InvokeApplicationExecutor.java | 94 +-
.../myfaces/test/mock/lifecycle/PhaseExecutor.java | 92 +-
.../test/mock/lifecycle/PhaseListenerManager.java | 238 +-
.../mock/lifecycle/ProcessValidationsExecutor.java | 88 +-
.../mock/lifecycle/RenderResponseExecutor.java | 122 +-
.../test/mock/lifecycle/RestoreViewExecutor.java | 290 +--
.../test/mock/lifecycle/RestoreViewSupport.java | 146 +-
.../mock/lifecycle/UpdateModelValuesExecutor.java | 92 +-
.../resource/MockClassLoaderResourceLoader.java | 260 +--
.../MockExternalContextResourceLoader.java | 446 ++--
.../mock/resource/MockResourceHandlerSupport.java | 248 +-
.../test/mock/resource/MockResourceLoader.java | 316 +--
.../test/mock/resource/MockResourceMeta.java | 246 +-
.../test/mock/resource/MockSimpleResource.java | 400 ++--
.../mock/resource/MockSimpleResourceHandler.java | 800 +++----
.../myfaces/test/mock/visit/FullVisitContext.java | 262 +--
.../test/mock/visit/PartialVisitContext.java | 938 ++++----
269 files changed, 31792 insertions(+), 31792 deletions(-)
diff --git a/api/src/main/java/jakarta/faces/annotation/ApplicationMap.java b/api/src/main/java/jakarta/faces/annotation/ApplicationMap.java
index d58375d..86e683a 100644
--- a/api/src/main/java/jakarta/faces/annotation/ApplicationMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/ApplicationMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface ApplicationMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface ApplicationMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/FacesConfig.java b/api/src/main/java/jakarta/faces/annotation/FacesConfig.java
index 2de8f9c..97e87b8 100644
--- a/api/src/main/java/jakarta/faces/annotation/FacesConfig.java
+++ b/api/src/main/java/jakarta/faces/annotation/FacesConfig.java
@@ -1,44 +1,44 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import jakarta.enterprise.util.Nonbinding;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Target(value=ElementType.TYPE)
-@Retention(value=RetentionPolicy.RUNTIME)
-public @interface FacesConfig
-{
-
- @Nonbinding Version version() default Version.JSF_2_3;
-
- public static enum Version
- {
- JSF_2_3
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import jakarta.enterprise.util.Nonbinding;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Target(value=ElementType.TYPE)
+@Retention(value=RetentionPolicy.RUNTIME)
+public @interface FacesConfig
+{
+
+ @Nonbinding Version version() default Version.JSF_2_3;
+
+ public static enum Version
+ {
+ JSF_2_3
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/FlowMap.java b/api/src/main/java/jakarta/faces/annotation/FlowMap.java
index 6f0b9bb..599ac2a 100644
--- a/api/src/main/java/jakarta/faces/annotation/FlowMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/FlowMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface FlowMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface FlowMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/HeaderMap.java b/api/src/main/java/jakarta/faces/annotation/HeaderMap.java
index 7f9a250..3e68415 100644
--- a/api/src/main/java/jakarta/faces/annotation/HeaderMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/HeaderMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface HeaderMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface HeaderMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/HeaderValuesMap.java b/api/src/main/java/jakarta/faces/annotation/HeaderValuesMap.java
index cb2f5f8..e0169a8 100644
--- a/api/src/main/java/jakarta/faces/annotation/HeaderValuesMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/HeaderValuesMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface HeaderValuesMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface HeaderValuesMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/InitParameterMap.java b/api/src/main/java/jakarta/faces/annotation/InitParameterMap.java
index 382267d..ec8cd22 100644
--- a/api/src/main/java/jakarta/faces/annotation/InitParameterMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/InitParameterMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface InitParameterMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface InitParameterMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/ManagedProperty.java b/api/src/main/java/jakarta/faces/annotation/ManagedProperty.java
index 9e50cfc..b0f3524 100644
--- a/api/src/main/java/jakarta/faces/annotation/ManagedProperty.java
+++ b/api/src/main/java/jakarta/faces/annotation/ManagedProperty.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Target(value=ElementType.FIELD)
-@Retention(value=RetentionPolicy.RUNTIME)
-public @interface ManagedProperty
-{
- public String value();
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Target(value=ElementType.FIELD)
+@Retention(value=RetentionPolicy.RUNTIME)
+public @interface ManagedProperty
+{
+ public String value();
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/RequestCookieMap.java b/api/src/main/java/jakarta/faces/annotation/RequestCookieMap.java
index 4c88165..50d27c6 100644
--- a/api/src/main/java/jakarta/faces/annotation/RequestCookieMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/RequestCookieMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface RequestCookieMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface RequestCookieMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/RequestMap.java b/api/src/main/java/jakarta/faces/annotation/RequestMap.java
index a155b19..4feb92b 100644
--- a/api/src/main/java/jakarta/faces/annotation/RequestMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/RequestMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface RequestMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface RequestMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/RequestParameterMap.java b/api/src/main/java/jakarta/faces/annotation/RequestParameterMap.java
index 5712103..6b6fdd3 100644
--- a/api/src/main/java/jakarta/faces/annotation/RequestParameterMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/RequestParameterMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface RequestParameterMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface RequestParameterMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/RequestParameterValuesMap.java b/api/src/main/java/jakarta/faces/annotation/RequestParameterValuesMap.java
index 7ab4d27..560dd80 100644
--- a/api/src/main/java/jakarta/faces/annotation/RequestParameterValuesMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/RequestParameterValuesMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface RequestParameterValuesMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface RequestParameterValuesMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/SessionMap.java b/api/src/main/java/jakarta/faces/annotation/SessionMap.java
index f8bb6e8..d852382 100644
--- a/api/src/main/java/jakarta/faces/annotation/SessionMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/SessionMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface SessionMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface SessionMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/annotation/ViewMap.java b/api/src/main/java/jakarta/faces/annotation/ViewMap.java
index 6f66f41..e8c9e74 100644
--- a/api/src/main/java/jakarta/faces/annotation/ViewMap.java
+++ b/api/src/main/java/jakarta/faces/annotation/ViewMap.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RUNTIME)
-@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-public @interface ViewMap
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RUNTIME)
+@Target(value={ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
+public @interface ViewMap
+{
+
+}
diff --git a/api/src/main/java/jakarta/faces/application/ResourceVisitOption.java b/api/src/main/java/jakarta/faces/application/ResourceVisitOption.java
index dfab57f..114a1ba 100644
--- a/api/src/main/java/jakarta/faces/application/ResourceVisitOption.java
+++ b/api/src/main/java/jakarta/faces/application/ResourceVisitOption.java
@@ -1,28 +1,28 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.application;
-
-/**
- *
- */
-public enum ResourceVisitOption
-{
- TOP_LEVEL_VIEWS_ONLY
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.application;
+
+/**
+ *
+ */
+public enum ResourceVisitOption
+{
+ TOP_LEVEL_VIEWS_ONLY
+}
diff --git a/api/src/main/java/jakarta/faces/application/ViewVisitOption.java b/api/src/main/java/jakarta/faces/application/ViewVisitOption.java
index becb032..a1fe74e 100644
--- a/api/src/main/java/jakarta/faces/application/ViewVisitOption.java
+++ b/api/src/main/java/jakarta/faces/application/ViewVisitOption.java
@@ -1,29 +1,29 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.application;
-
-/**
- *
- * @since 2.3
- */
-public enum ViewVisitOption
-{
- RETURN_AS_MINIMAL_IMPLICIT_OUTCOME
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.application;
+
+/**
+ *
+ * @since 2.3
+ */
+public enum ViewVisitOption
+{
+ RETURN_AS_MINIMAL_IMPLICIT_OUTCOME
+}
diff --git a/api/src/main/java/jakarta/faces/component/UIImportConstants.java b/api/src/main/java/jakarta/faces/component/UIImportConstants.java
index 3b12948..b7bf418 100644
--- a/api/src/main/java/jakarta/faces/component/UIImportConstants.java
+++ b/api/src/main/java/jakarta/faces/component/UIImportConstants.java
@@ -1,84 +1,84 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component;
-
-import jakarta.el.ValueExpression;
-
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
-
-@JSFComponent(clazz = "jakarta.faces.component.UIImportConstants",
- name = "f:importConstants", bodyContent = "empty")
-public class UIImportConstants extends UIComponentBase
-{
-
- static public final String COMPONENT_FAMILY = "jakarta.faces.ImportConstants";
- static public final String COMPONENT_TYPE = "jakarta.faces.ImportConstants";
-
-
- public UIImportConstants()
- {
- setRendererType(null);
- }
-
- @Override
- public String getFamily()
- {
- return COMPONENT_FAMILY;
- }
-
- @JSFProperty
- public String getType()
- {
- return (String) getStateHelper().eval(PropertyKeys.type);
- }
-
- public void setType(String type)
- {
- getStateHelper().put(PropertyKeys.type, type );
- }
-
- @JSFProperty
- public String getVar()
- {
- return (String) getStateHelper().eval(PropertyKeys.var);
- }
-
- public void setVar(String var)
- {
- getStateHelper().put(PropertyKeys.var, var );
- }
-
- @Override
- public void setValueExpression(String name, ValueExpression binding)
- {
- if (PropertyKeys.var.toString().equals(name))
- {
- throw new IllegalArgumentException(name);
- }
-
- super.setValueExpression(name, binding);
- }
-
- enum PropertyKeys
- {
- type
- , var
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component;
+
+import jakarta.el.ValueExpression;
+
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
+
+@JSFComponent(clazz = "jakarta.faces.component.UIImportConstants",
+ name = "f:importConstants", bodyContent = "empty")
+public class UIImportConstants extends UIComponentBase
+{
+
+ static public final String COMPONENT_FAMILY = "jakarta.faces.ImportConstants";
+ static public final String COMPONENT_TYPE = "jakarta.faces.ImportConstants";
+
+
+ public UIImportConstants()
+ {
+ setRendererType(null);
+ }
+
+ @Override
+ public String getFamily()
+ {
+ return COMPONENT_FAMILY;
+ }
+
+ @JSFProperty
+ public String getType()
+ {
+ return (String) getStateHelper().eval(PropertyKeys.type);
+ }
+
+ public void setType(String type)
+ {
+ getStateHelper().put(PropertyKeys.type, type );
+ }
+
+ @JSFProperty
+ public String getVar()
+ {
+ return (String) getStateHelper().eval(PropertyKeys.var);
+ }
+
+ public void setVar(String var)
+ {
+ getStateHelper().put(PropertyKeys.var, var );
+ }
+
+ @Override
+ public void setValueExpression(String name, ValueExpression binding)
+ {
+ if (PropertyKeys.var.toString().equals(name))
+ {
+ throw new IllegalArgumentException(name);
+ }
+
+ super.setValueExpression(name, binding);
+ }
+
+ enum PropertyKeys
+ {
+ type
+ , var
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/component/_UIWebsocket.java b/api/src/main/java/jakarta/faces/component/_UIWebsocket.java
index 271ff52..1b84590 100644
--- a/api/src/main/java/jakarta/faces/component/_UIWebsocket.java
+++ b/api/src/main/java/jakarta/faces/component/_UIWebsocket.java
@@ -1,100 +1,100 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import jakarta.el.ValueExpression;
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
-
-@JSFComponent(clazz = "jakarta.faces.component.UIWebsocket",template=true,
- name = "f:websocket",
- defaultRendererType = "jakarta.faces.Websocket",
- implementz = "jakarta.faces.component.behavior.ClientBehaviorHolder",
- bodyContent = "empty")
-abstract class _UIWebsocket extends UIComponentBase
-{
-
- static public final String COMPONENT_FAMILY = "jakarta.faces.Script";
- static public final String COMPONENT_TYPE = "jakarta.faces.Websocket";
-
- private static final Collection<String> EVERY_EVENT = Collections.unmodifiableList(new java.util.ArrayList<String>()
- {
- @Override
- public boolean contains(Object object)
- {
- return true;
- }
- });
-
- @JSFProperty
- public abstract String getChannel();
-
- @JSFProperty
- public abstract String getScope();
-
- @JSFProperty
- public abstract Serializable getUser();
-
- @JSFProperty
- public abstract String getOnopen();
-
- @JSFProperty
- public abstract String getOnmessage();
-
- @JSFProperty
- public abstract String getOnclose();
-
- @JSFProperty(defaultValue = "true")
- public abstract boolean isConnected();
-
- @Override
- public void setValueExpression(String name, ValueExpression binding)
- {
- if (PropertyKeys.channel.toString().equals(name) || PropertyKeys.scope.toString().equals(name))
- {
- throw new IllegalArgumentException(name);
- }
-
- if (PropertyKeys.user.toString().equals(name))
- {
- Object user = binding.getValue(getFacesContext().getELContext());
-
- if (user != null && !(user instanceof Serializable))
- {
- throw new IllegalArgumentException("f:websocket 'user' attribute does not represent a valid user identifier because it is not Serializable.");
- }
- }
-
- super.setValueExpression(name, binding);
- }
-
- enum PropertyKeys
- {
- channel, scope, user, onopen, onmessage, onclose, connected;
- }
-
- @Override
- public Collection<String> getEventNames()
- {
- return EVERY_EVENT;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Collections;
+import jakarta.el.ValueExpression;
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
+
+@JSFComponent(clazz = "jakarta.faces.component.UIWebsocket",template=true,
+ name = "f:websocket",
+ defaultRendererType = "jakarta.faces.Websocket",
+ implementz = "jakarta.faces.component.behavior.ClientBehaviorHolder",
+ bodyContent = "empty")
+abstract class _UIWebsocket extends UIComponentBase
+{
+
+ static public final String COMPONENT_FAMILY = "jakarta.faces.Script";
+ static public final String COMPONENT_TYPE = "jakarta.faces.Websocket";
+
+ private static final Collection<String> EVERY_EVENT = Collections.unmodifiableList(new java.util.ArrayList<String>()
+ {
+ @Override
+ public boolean contains(Object object)
+ {
+ return true;
+ }
+ });
+
+ @JSFProperty
+ public abstract String getChannel();
+
+ @JSFProperty
+ public abstract String getScope();
+
+ @JSFProperty
+ public abstract Serializable getUser();
+
+ @JSFProperty
+ public abstract String getOnopen();
+
+ @JSFProperty
+ public abstract String getOnmessage();
+
+ @JSFProperty
+ public abstract String getOnclose();
+
+ @JSFProperty(defaultValue = "true")
+ public abstract boolean isConnected();
+
+ @Override
+ public void setValueExpression(String name, ValueExpression binding)
+ {
+ if (PropertyKeys.channel.toString().equals(name) || PropertyKeys.scope.toString().equals(name))
+ {
+ throw new IllegalArgumentException(name);
+ }
+
+ if (PropertyKeys.user.toString().equals(name))
+ {
+ Object user = binding.getValue(getFacesContext().getELContext());
+
+ if (user != null && !(user instanceof Serializable))
+ {
+ throw new IllegalArgumentException("f:websocket 'user' attribute does not represent a valid user identifier because it is not Serializable.");
+ }
+ }
+
+ super.setValueExpression(name, binding);
+ }
+
+ enum PropertyKeys
+ {
+ channel, scope, user, onopen, onmessage, onclose, connected;
+ }
+
+ @Override
+ public Collection<String> getEventNames()
+ {
+ return EVERY_EVENT;
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/component/html/_ChangeProperty.java b/api/src/main/java/jakarta/faces/component/html/_ChangeProperty.java
index 7cc6181..4229a1b 100644
--- a/api/src/main/java/jakarta/faces/component/html/_ChangeProperty.java
+++ b/api/src/main/java/jakarta/faces/component/html/_ChangeProperty.java
@@ -1,32 +1,32 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component.html;
-
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
-
-interface _ChangeProperty
-{
- /**
- * HTML: Specifies a script to be invoked when the element is modified.
- *
- */
- @JSFProperty(clientEvent="change")
- public abstract String getOnchange();
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component.html;
+
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
+
+interface _ChangeProperty
+{
+ /**
+ * HTML: Specifies a script to be invoked when the element is modified.
+ *
+ */
+ @JSFProperty(clientEvent="change")
+ public abstract String getOnchange();
+
+}
diff --git a/api/src/main/java/jakarta/faces/component/html/_SelectProperty.java b/api/src/main/java/jakarta/faces/component/html/_SelectProperty.java
index 03f66df..4f18909 100644
--- a/api/src/main/java/jakarta/faces/component/html/_SelectProperty.java
+++ b/api/src/main/java/jakarta/faces/component/html/_SelectProperty.java
@@ -1,32 +1,32 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component.html;
-
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
-
-interface _SelectProperty
-{
- /**
- * HTML: Specifies a script to be invoked when the element is selected.
- *
- */
- @JSFProperty(clientEvent="select")
- public abstract String getOnselect();
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component.html;
+
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
+
+interface _SelectProperty
+{
+ /**
+ * HTML: Specifies a script to be invoked when the element is selected.
+ *
+ */
+ @JSFProperty(clientEvent="select")
+ public abstract String getOnselect();
+
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/ComponentNotFoundException.java b/api/src/main/java/jakarta/faces/component/search/ComponentNotFoundException.java
index 78eea0d..16d87c6 100644
--- a/api/src/main/java/jakarta/faces/component/search/ComponentNotFoundException.java
+++ b/api/src/main/java/jakarta/faces/component/search/ComponentNotFoundException.java
@@ -1,48 +1,48 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component.search;
-
-import jakarta.faces.FacesException;
-
-/**
- *
- */
-public class ComponentNotFoundException extends FacesException
-{
-
- public ComponentNotFoundException()
- {
- super();
- }
-
- public ComponentNotFoundException(String message)
- {
- super(message);
- }
-
- public ComponentNotFoundException(Throwable cause)
- {
- super(cause);
- }
-
- public ComponentNotFoundException(String message, Throwable cause)
- {
- super(message, cause);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component.search;
+
+import jakarta.faces.FacesException;
+
+/**
+ *
+ */
+public class ComponentNotFoundException extends FacesException
+{
+
+ public ComponentNotFoundException()
+ {
+ super();
+ }
+
+ public ComponentNotFoundException(String message)
+ {
+ super(message);
+ }
+
+ public ComponentNotFoundException(Throwable cause)
+ {
+ super(cause);
+ }
+
+ public ComponentNotFoundException(String message, Throwable cause)
+ {
+ super(message, cause);
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchExpressionContext.java b/api/src/main/java/jakarta/faces/component/search/SearchExpressionContext.java
index 99fb639..68e2966 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchExpressionContext.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchExpressionContext.java
@@ -1,57 +1,57 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.component.search;
-
-import java.util.Set;
-import jakarta.faces.FactoryFinder;
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.visit.VisitHint;
-import jakarta.faces.context.FacesContext;
-
-/**
- *
- */
-public abstract class SearchExpressionContext
-{
-
- public static SearchExpressionContext createSearchExpressionContext(FacesContext context, UIComponent source)
- {
- return createSearchExpressionContext(context, source, null, null);
- }
-
- public static SearchExpressionContext createSearchExpressionContext(
- FacesContext context, UIComponent source,
- Set<SearchExpressionHint> expressionHints, Set<VisitHint> visitHints)
- {
- SearchExpressionContextFactory factory
- = (SearchExpressionContextFactory) FactoryFinder.getFactory(
- FactoryFinder.SEARCH_EXPRESSION_CONTEXT_FACTORY);
- return factory.getSearchExpressionContext(context, source, expressionHints, visitHints);
- }
-
- public abstract UIComponent getSource();
-
- public abstract Set<VisitHint> getVisitHints();
-
- public abstract Set<SearchExpressionHint> getExpressionHints();
-
- public abstract FacesContext getFacesContext();
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.component.search;
+
+import java.util.Set;
+import jakarta.faces.FactoryFinder;
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.component.visit.VisitHint;
+import jakarta.faces.context.FacesContext;
+
+/**
+ *
+ */
+public abstract class SearchExpressionContext
+{
+
+ public static SearchExpressionContext createSearchExpressionContext(FacesContext context, UIComponent source)
+ {
+ return createSearchExpressionContext(context, source, null, null);
+ }
+
+ public static SearchExpressionContext createSearchExpressionContext(
+ FacesContext context, UIComponent source,
+ Set<SearchExpressionHint> expressionHints, Set<VisitHint> visitHints)
+ {
+ SearchExpressionContextFactory factory
+ = (SearchExpressionContextFactory) FactoryFinder.getFactory(
+ FactoryFinder.SEARCH_EXPRESSION_CONTEXT_FACTORY);
+ return factory.getSearchExpressionContext(context, source, expressionHints, visitHints);
+ }
+
+ public abstract UIComponent getSource();
+
+ public abstract Set<VisitHint> getVisitHints();
+
+ public abstract Set<SearchExpressionHint> getExpressionHints();
+
+ public abstract FacesContext getFacesContext();
+
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchExpressionContextFactory.java b/api/src/main/java/jakarta/faces/component/search/SearchExpressionContextFactory.java
index 4027c44..0e3b7c8 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchExpressionContextFactory.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchExpressionContextFactory.java
@@ -1,48 +1,48 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component.search;
-
-import java.util.Set;
-import jakarta.faces.FacesWrapper;
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.visit.VisitHint;
-import jakarta.faces.context.FacesContext;
-
-/**
- *
- */
-public abstract class SearchExpressionContextFactory implements FacesWrapper<SearchExpressionContextFactory>
-{
- private SearchExpressionContextFactory delegate;
-
- public SearchExpressionContextFactory(SearchExpressionContextFactory delegate)
- {
- this.delegate = delegate;
- }
-
- public abstract SearchExpressionContext getSearchExpressionContext(
- FacesContext context, UIComponent source,
- Set<SearchExpressionHint> expressionHints, Set<VisitHint> visitHints);
-
- @Override
- public SearchExpressionContextFactory getWrapped()
- {
- return this.delegate;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component.search;
+
+import java.util.Set;
+import jakarta.faces.FacesWrapper;
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.component.visit.VisitHint;
+import jakarta.faces.context.FacesContext;
+
+/**
+ *
+ */
+public abstract class SearchExpressionContextFactory implements FacesWrapper<SearchExpressionContextFactory>
+{
+ private SearchExpressionContextFactory delegate;
+
+ public SearchExpressionContextFactory(SearchExpressionContextFactory delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ public abstract SearchExpressionContext getSearchExpressionContext(
+ FacesContext context, UIComponent source,
+ Set<SearchExpressionHint> expressionHints, Set<VisitHint> visitHints);
+
+ @Override
+ public SearchExpressionContextFactory getWrapped()
+ {
+ return this.delegate;
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandler.java b/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandler.java
index 5c1506d..d1677dc 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandler.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandler.java
@@ -1,69 +1,69 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component.search;
-
-import java.util.List;
-import jakarta.faces.component.ContextCallback;
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.context.FacesContext;
-
-/**
- *
- */
-public abstract class SearchExpressionHandler
-{
-
- protected static final char[] EXPRESSION_SEPARATOR_CHARS = new char[]
- {
- ',', ' '
- };
- public static final String KEYWORD_PREFIX = "@";
-
- public abstract String resolveClientId(SearchExpressionContext searchExpressionContext, String expression);
-
- public abstract List<String> resolveClientIds(
- SearchExpressionContext searchExpressionContext, String expressions);
-
- public abstract void resolveComponent(SearchExpressionContext searchExpressionContext, String expression,
- ContextCallback callback);
-
- public abstract void resolveComponents(SearchExpressionContext searchExpressionContext, String expressions,
- ContextCallback callback);
-
- public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
- String expressions, ContextCallback topCallback)
- {
- invokeOnComponent(searchExpressionContext, searchExpressionContext.getSource(), expressions, topCallback);
- }
-
- public abstract void invokeOnComponent(SearchExpressionContext searchExpressionContext,
- UIComponent previous, String expression, ContextCallback topCallback);
-
- public abstract String[] splitExpressions(FacesContext context, String expressions);
-
- public abstract boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, String expression);
-
- public abstract boolean isValidExpression(SearchExpressionContext searchExpressionContext, String expression);
-
- public char[] getExpressionSeperatorChars(FacesContext context)
- {
- return EXPRESSION_SEPARATOR_CHARS;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component.search;
+
+import java.util.List;
+import jakarta.faces.component.ContextCallback;
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.context.FacesContext;
+
+/**
+ *
+ */
+public abstract class SearchExpressionHandler
+{
+
+ protected static final char[] EXPRESSION_SEPARATOR_CHARS = new char[]
+ {
+ ',', ' '
+ };
+ public static final String KEYWORD_PREFIX = "@";
+
+ public abstract String resolveClientId(SearchExpressionContext searchExpressionContext, String expression);
+
+ public abstract List<String> resolveClientIds(
+ SearchExpressionContext searchExpressionContext, String expressions);
+
+ public abstract void resolveComponent(SearchExpressionContext searchExpressionContext, String expression,
+ ContextCallback callback);
+
+ public abstract void resolveComponents(SearchExpressionContext searchExpressionContext, String expressions,
+ ContextCallback callback);
+
+ public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
+ String expressions, ContextCallback topCallback)
+ {
+ invokeOnComponent(searchExpressionContext, searchExpressionContext.getSource(), expressions, topCallback);
+ }
+
+ public abstract void invokeOnComponent(SearchExpressionContext searchExpressionContext,
+ UIComponent previous, String expression, ContextCallback topCallback);
+
+ public abstract String[] splitExpressions(FacesContext context, String expressions);
+
+ public abstract boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, String expression);
+
+ public abstract boolean isValidExpression(SearchExpressionContext searchExpressionContext, String expression);
+
+ public char[] getExpressionSeperatorChars(FacesContext context)
+ {
+ return EXPRESSION_SEPARATOR_CHARS;
+ }
+
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandlerWrapper.java b/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandlerWrapper.java
index 29100df..d87946a 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandlerWrapper.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchExpressionHandlerWrapper.java
@@ -1,110 +1,110 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.component.search;
-
-import java.util.List;
-import jakarta.faces.FacesWrapper;
-import jakarta.faces.component.ContextCallback;
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.context.FacesContext;
-
-/**
- *
- */
-public abstract class SearchExpressionHandlerWrapper extends SearchExpressionHandler
- implements FacesWrapper<SearchExpressionHandler>
-{
- private SearchExpressionHandler delegate;
-
- public SearchExpressionHandlerWrapper(SearchExpressionHandler delegate)
- {
- this.delegate = delegate;
- }
-
- @Override
- public SearchExpressionHandler getWrapped()
- {
- return delegate;
- }
-
- @Override
- public String resolveClientId(SearchExpressionContext searchExpressionContext, String expression)
- {
- return getWrapped().resolveClientId(searchExpressionContext, expression);
- }
-
- @Override
- public List<String> resolveClientIds(SearchExpressionContext searchExpressionContext, String expressions)
- {
- return getWrapped().resolveClientIds(searchExpressionContext, expressions);
- }
-
- @Override
- public void resolveComponent(SearchExpressionContext searchExpressionContext,
- String expression, ContextCallback callback)
- {
- getWrapped().resolveComponent(searchExpressionContext, expression, callback);
- }
-
- @Override
- public void resolveComponents(
- SearchExpressionContext searchExpressionContext, String expressions, ContextCallback callback)
- {
- getWrapped().resolveComponents(searchExpressionContext, expressions, callback);
- }
-
- @Override
- public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
- String expression, ContextCallback topCallback)
- {
- getWrapped().invokeOnComponent(searchExpressionContext, expression, topCallback);
- }
-
- @Override
- public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
- UIComponent previous, String expression, ContextCallback topCallback)
- {
- getWrapped().invokeOnComponent(searchExpressionContext, previous, expression, topCallback);
- }
-
- @Override
- public boolean isValidExpression(SearchExpressionContext searchExpressionContext, String expression)
- {
- return getWrapped().isValidExpression(searchExpressionContext, expression);
- }
-
- @Override
- public boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, String expression)
- {
- return getWrapped().isPassthroughExpression(searchExpressionContext, expression);
- }
-
- @Override
- public String[] splitExpressions(FacesContext context, String expressions)
- {
- return getWrapped().splitExpressions(context, expressions);
- }
-
- @Override
- public char[] getExpressionSeperatorChars(FacesContext context)
- {
- return getWrapped().getExpressionSeperatorChars(context);
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.component.search;
+
+import java.util.List;
+import jakarta.faces.FacesWrapper;
+import jakarta.faces.component.ContextCallback;
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.context.FacesContext;
+
+/**
+ *
+ */
+public abstract class SearchExpressionHandlerWrapper extends SearchExpressionHandler
+ implements FacesWrapper<SearchExpressionHandler>
+{
+ private SearchExpressionHandler delegate;
+
+ public SearchExpressionHandlerWrapper(SearchExpressionHandler delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public SearchExpressionHandler getWrapped()
+ {
+ return delegate;
+ }
+
+ @Override
+ public String resolveClientId(SearchExpressionContext searchExpressionContext, String expression)
+ {
+ return getWrapped().resolveClientId(searchExpressionContext, expression);
+ }
+
+ @Override
+ public List<String> resolveClientIds(SearchExpressionContext searchExpressionContext, String expressions)
+ {
+ return getWrapped().resolveClientIds(searchExpressionContext, expressions);
+ }
+
+ @Override
+ public void resolveComponent(SearchExpressionContext searchExpressionContext,
+ String expression, ContextCallback callback)
+ {
+ getWrapped().resolveComponent(searchExpressionContext, expression, callback);
+ }
+
+ @Override
+ public void resolveComponents(
+ SearchExpressionContext searchExpressionContext, String expressions, ContextCallback callback)
+ {
+ getWrapped().resolveComponents(searchExpressionContext, expressions, callback);
+ }
+
+ @Override
+ public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
+ String expression, ContextCallback topCallback)
+ {
+ getWrapped().invokeOnComponent(searchExpressionContext, expression, topCallback);
+ }
+
+ @Override
+ public void invokeOnComponent(SearchExpressionContext searchExpressionContext,
+ UIComponent previous, String expression, ContextCallback topCallback)
+ {
+ getWrapped().invokeOnComponent(searchExpressionContext, previous, expression, topCallback);
+ }
+
+ @Override
+ public boolean isValidExpression(SearchExpressionContext searchExpressionContext, String expression)
+ {
+ return getWrapped().isValidExpression(searchExpressionContext, expression);
+ }
+
+ @Override
+ public boolean isPassthroughExpression(SearchExpressionContext searchExpressionContext, String expression)
+ {
+ return getWrapped().isPassthroughExpression(searchExpressionContext, expression);
+ }
+
+ @Override
+ public String[] splitExpressions(FacesContext context, String expressions)
+ {
+ return getWrapped().splitExpressions(context, expressions);
+ }
+
+ @Override
+ public char[] getExpressionSeperatorChars(FacesContext context)
+ {
+ return getWrapped().getExpressionSeperatorChars(context);
+ }
+
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchExpressionHint.java b/api/src/main/java/jakarta/faces/component/search/SearchExpressionHint.java
index b04e82b..210920d 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchExpressionHint.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchExpressionHint.java
@@ -1,42 +1,42 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.component.search;
-
-/**
- *
- */
-public enum SearchExpressionHint
-{
-
- IGNORE_NO_RESULT,
-
- /**
- * Indicate that the method is collecting a list of real UIComponent instances.
- */
- SKIP_VIRTUAL_COMPONENTS,
-
- RESOLVE_SINGLE_COMPONENT,
-
- /**
- * Indicate that some expressions can be resolved on the client side.
- */
- RESOLVE_CLIENT_SIDE
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.component.search;
+
+/**
+ *
+ */
+public enum SearchExpressionHint
+{
+
+ IGNORE_NO_RESULT,
+
+ /**
+ * Indicate that the method is collecting a list of real UIComponent instances.
+ */
+ SKIP_VIRTUAL_COMPONENTS,
+
+ RESOLVE_SINGLE_COMPONENT,
+
+ /**
+ * Indicate that some expressions can be resolved on the client side.
+ */
+ RESOLVE_CLIENT_SIDE
+
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchKeywordContext.java b/api/src/main/java/jakarta/faces/component/search/SearchKeywordContext.java
index 673aac0..5e9a2a4 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchKeywordContext.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchKeywordContext.java
@@ -1,75 +1,75 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.component.search;
-
-import jakarta.faces.component.ContextCallback;
-import jakarta.faces.component.UIComponent;
-
-/**
- *
- */
-public class SearchKeywordContext
-{
-
- private final SearchExpressionContext searchExpressionContext;
- private final ContextCallback callback;
- private final String remainingExpression;
-
- private boolean keywordResolved;
-
- public SearchKeywordContext(SearchExpressionContext searchExpressionContext, ContextCallback callback,
- String remainingExpression)
- {
- this.searchExpressionContext = searchExpressionContext;
- this.callback = callback;
- this.remainingExpression = remainingExpression;
- }
-
- public void invokeContextCallback(UIComponent target)
- {
- keywordResolved = true;
- callback.invokeContextCallback(searchExpressionContext.getFacesContext(), target);
- }
-
- public SearchExpressionContext getSearchExpressionContext()
- {
- return searchExpressionContext;
- }
-
- public ContextCallback getCallback()
- {
- return callback;
- }
-
- public boolean isKeywordResolved()
- {
- return keywordResolved;
- }
-
- public void setKeywordResolved(boolean keywordResolved)
- {
- this.keywordResolved = keywordResolved;
- }
-
- public String getRemainingExpression()
- {
- return remainingExpression;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.component.search;
+
+import jakarta.faces.component.ContextCallback;
+import jakarta.faces.component.UIComponent;
+
+/**
+ *
+ */
+public class SearchKeywordContext
+{
+
+ private final SearchExpressionContext searchExpressionContext;
+ private final ContextCallback callback;
+ private final String remainingExpression;
+
+ private boolean keywordResolved;
+
+ public SearchKeywordContext(SearchExpressionContext searchExpressionContext, ContextCallback callback,
+ String remainingExpression)
+ {
+ this.searchExpressionContext = searchExpressionContext;
+ this.callback = callback;
+ this.remainingExpression = remainingExpression;
+ }
+
+ public void invokeContextCallback(UIComponent target)
+ {
+ keywordResolved = true;
+ callback.invokeContextCallback(searchExpressionContext.getFacesContext(), target);
+ }
+
+ public SearchExpressionContext getSearchExpressionContext()
+ {
+ return searchExpressionContext;
+ }
+
+ public ContextCallback getCallback()
+ {
+ return callback;
+ }
+
+ public boolean isKeywordResolved()
+ {
+ return keywordResolved;
+ }
+
+ public void setKeywordResolved(boolean keywordResolved)
+ {
+ this.keywordResolved = keywordResolved;
+ }
+
+ public String getRemainingExpression()
+ {
+ return remainingExpression;
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/SearchKeywordResolver.java b/api/src/main/java/jakarta/faces/component/search/SearchKeywordResolver.java
index 1bf4d28..62768d4 100644
--- a/api/src/main/java/jakarta/faces/component/search/SearchKeywordResolver.java
+++ b/api/src/main/java/jakarta/faces/component/search/SearchKeywordResolver.java
@@ -1,66 +1,66 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.component.search;
-
-import jakarta.faces.component.UIComponent;
-
-/**
- *
- */
-public abstract class SearchKeywordResolver
-{
-
- public abstract void resolve(SearchKeywordContext keywordContext, UIComponent current, String keyword);
-
- /**
- * Check if the keyword can be resolved by the current resolver
- *
- * @param searchExpressionContext
- * @param keyword
- * @return
- */
- public abstract boolean isResolverForKeyword(SearchExpressionContext searchExpressionContext, String keyword);
-
- /**
- * A passthrough keyword is a keyword that according to the context does not require to be resolved on the server,
- * and can be passed to the client
- *
- * @param searchExpressionContext
- * @param keyword
- * @return
- */
- public boolean isPassthrough(SearchExpressionContext searchExpressionContext, String keyword)
- {
- return false;
- }
-
- /**
- * A leaf keyword is a keyword that does not allow to be combined with keywords or id chains to the right.
- * For example: @none:@parent.
- *
- * @param searchExpressionContext
- * @param keyword
- * @return
- */
- public boolean isLeaf(SearchExpressionContext searchExpressionContext, String keyword)
- {
- return false;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.component.search;
+
+import jakarta.faces.component.UIComponent;
+
+/**
+ *
+ */
+public abstract class SearchKeywordResolver
+{
+
+ public abstract void resolve(SearchKeywordContext keywordContext, UIComponent current, String keyword);
+
+ /**
+ * Check if the keyword can be resolved by the current resolver
+ *
+ * @param searchExpressionContext
+ * @param keyword
+ * @return
+ */
+ public abstract boolean isResolverForKeyword(SearchExpressionContext searchExpressionContext, String keyword);
+
+ /**
+ * A passthrough keyword is a keyword that according to the context does not require to be resolved on the server,
+ * and can be passed to the client
+ *
+ * @param searchExpressionContext
+ * @param keyword
+ * @return
+ */
+ public boolean isPassthrough(SearchExpressionContext searchExpressionContext, String keyword)
+ {
+ return false;
+ }
+
+ /**
+ * A leaf keyword is a keyword that does not allow to be combined with keywords or id chains to the right.
+ * For example: @none:@parent.
+ *
+ * @param searchExpressionContext
+ * @param keyword
+ * @return
+ */
+ public boolean isLeaf(SearchExpressionContext searchExpressionContext, String keyword)
+ {
+ return false;
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/component/search/UntargetableComponent.java b/api/src/main/java/jakarta/faces/component/search/UntargetableComponent.java
index b1f309b..266ee96 100644
--- a/api/src/main/java/jakarta/faces/component/search/UntargetableComponent.java
+++ b/api/src/main/java/jakarta/faces/component/search/UntargetableComponent.java
@@ -1,27 +1,27 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.component.search;
-
-/**
- * Components implementing this interface are ignored by @child(n) search keyword.
- */
-public interface UntargetableComponent
-{
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.component.search;
+
+/**
+ * Components implementing this interface are ignored by @child(n) search keyword.
+ */
+public interface UntargetableComponent
+{
+}
diff --git a/api/src/main/java/jakarta/faces/event/PostRenderViewEvent.java b/api/src/main/java/jakarta/faces/event/PostRenderViewEvent.java
index 45876f1..2891a28 100644
--- a/api/src/main/java/jakarta/faces/event/PostRenderViewEvent.java
+++ b/api/src/main/java/jakarta/faces/event/PostRenderViewEvent.java
@@ -1,42 +1,42 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.event;
-
-import jakarta.faces.component.UIViewRoot;
-import jakarta.faces.context.FacesContext;
-
-/**
- *
- * @author andraschko
- */
-public class PostRenderViewEvent extends ComponentSystemEvent
-{
- public PostRenderViewEvent(UIViewRoot root)
- {
- super(root);
- }
-
- /**
- * @since 2.3
- */
- public PostRenderViewEvent(FacesContext facesContext, UIViewRoot root)
- {
- super(root);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.event;
+
+import jakarta.faces.component.UIViewRoot;
+import jakarta.faces.context.FacesContext;
+
+/**
+ *
+ * @author andraschko
+ */
+public class PostRenderViewEvent extends ComponentSystemEvent
+{
+ public PostRenderViewEvent(UIViewRoot root)
+ {
+ super(root);
+ }
+
+ /**
+ * @since 2.3
+ */
+ public PostRenderViewEvent(FacesContext facesContext, UIViewRoot root)
+ {
+ super(root);
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/event/WebsocketEvent.java b/api/src/main/java/jakarta/faces/event/WebsocketEvent.java
index f0c63e5..1008490 100644
--- a/api/src/main/java/jakarta/faces/event/WebsocketEvent.java
+++ b/api/src/main/java/jakarta/faces/event/WebsocketEvent.java
@@ -1,121 +1,121 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.event;
-
-import java.io.Serializable;
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.util.Objects;
-import jakarta.inject.Qualifier;
-import jakarta.websocket.CloseReason;
-
-/**
- *
- */
-public final class WebsocketEvent implements Serializable
-{
-
- private String channel;
- private Serializable user;
- private CloseReason.CloseCode code;
-
- public WebsocketEvent(String channel, Serializable user, CloseReason.CloseCode code)
- {
- this.channel = channel;
- this.user = user;
- this.code = code;
- }
-
- public String getChannel()
- {
- return channel;
- }
-
- public <S extends java.io.Serializable> S getUser()
- {
- return (S) user;
- }
-
- public CloseReason.CloseCode getCloseCode()
- {
- return code;
- }
-
- @Override
- public int hashCode()
- {
- int hash = 3;
- hash = 23 * hash + Objects.hashCode(this.channel);
- hash = 23 * hash + Objects.hashCode(this.user);
- hash = 23 * hash + Objects.hashCode(this.code);
- return hash;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj == null)
- {
- return false;
- }
- if (getClass() != obj.getClass())
- {
- return false;
- }
- final WebsocketEvent other = (WebsocketEvent) obj;
- if (!Objects.equals(this.channel, other.channel))
- {
- return false;
- }
- if (!Objects.equals(this.user, other.user))
- {
- return false;
- }
- if (!Objects.equals(this.code, other.code))
- {
- return false;
- }
- return true;
- }
-
- @Override
- public String toString()
- {
- return "WebsocketEvent{" + "channel=" + channel + ", user=" + user + ", code=" + code + '}';
- }
-
- @Qualifier
- @Target(ElementType.PARAMETER)
- @Retention(RetentionPolicy.RUNTIME)
- @Documented
- public static @interface Opened
- {
- }
-
- @Qualifier
- @Target(ElementType.PARAMETER)
- @Retention(RetentionPolicy.RUNTIME)
- @Documented
- public static @interface Closed
- {
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.event;
+
+import java.io.Serializable;
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.Objects;
+import jakarta.inject.Qualifier;
+import jakarta.websocket.CloseReason;
+
+/**
+ *
+ */
+public final class WebsocketEvent implements Serializable
+{
+
+ private String channel;
+ private Serializable user;
+ private CloseReason.CloseCode code;
+
+ public WebsocketEvent(String channel, Serializable user, CloseReason.CloseCode code)
+ {
+ this.channel = channel;
+ this.user = user;
+ this.code = code;
+ }
+
+ public String getChannel()
+ {
+ return channel;
+ }
+
+ public <S extends java.io.Serializable> S getUser()
+ {
+ return (S) user;
+ }
+
+ public CloseReason.CloseCode getCloseCode()
+ {
+ return code;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 3;
+ hash = 23 * hash + Objects.hashCode(this.channel);
+ hash = 23 * hash + Objects.hashCode(this.user);
+ hash = 23 * hash + Objects.hashCode(this.code);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj == null)
+ {
+ return false;
+ }
+ if (getClass() != obj.getClass())
+ {
+ return false;
+ }
+ final WebsocketEvent other = (WebsocketEvent) obj;
+ if (!Objects.equals(this.channel, other.channel))
+ {
+ return false;
+ }
+ if (!Objects.equals(this.user, other.user))
+ {
+ return false;
+ }
+ if (!Objects.equals(this.code, other.code))
+ {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "WebsocketEvent{" + "channel=" + channel + ", user=" + user + ", code=" + code + '}';
+ }
+
+ @Qualifier
+ @Target(ElementType.PARAMETER)
+ @Retention(RetentionPolicy.RUNTIME)
+ @Documented
+ public static @interface Opened
+ {
+ }
+
+ @Qualifier
+ @Target(ElementType.PARAMETER)
+ @Retention(RetentionPolicy.RUNTIME)
+ @Documented
+ public static @interface Closed
+ {
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/model/FacesDataModel.java b/api/src/main/java/jakarta/faces/model/FacesDataModel.java
index 292a585..1dde29a 100644
--- a/api/src/main/java/jakarta/faces/model/FacesDataModel.java
+++ b/api/src/main/java/jakarta/faces/model/FacesDataModel.java
@@ -1,39 +1,39 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.model;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Inherited
-@Qualifier
-public @interface FacesDataModel
-{
- public java.lang.Class<?> forClass() default Object.class;
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.model;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+@Inherited
+@Qualifier
+public @interface FacesDataModel
+{
+ public java.lang.Class<?> forClass() default Object.class;
+}
diff --git a/api/src/main/java/jakarta/faces/model/IterableDataModel.java b/api/src/main/java/jakarta/faces/model/IterableDataModel.java
index e1871a5..404f9e3 100644
--- a/api/src/main/java/jakarta/faces/model/IterableDataModel.java
+++ b/api/src/main/java/jakarta/faces/model/IterableDataModel.java
@@ -1,181 +1,181 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- *
- * @since 2.3
- */
-public class IterableDataModel<E> extends DataModel<E>
-{
- private int _rowIndex = -1;
- private Iterable<E> _iterable;
- private List<E> _list;
- private Iterator<E> _iterator;
- private int _count = -1;
-
- public IterableDataModel()
- {
- }
-
- public IterableDataModel(Iterable<E> iterable)
- {
- if (iterable == null)
- {
- throw new NullPointerException("array");
- }
- setWrappedData(iterable);
- }
-
- @Override
- public int getRowCount()
- {
- return _count;
- }
-
- @Override
- public E getRowData()
- {
- if (_iterable == null)
- {
- return null;
- }
- if (!isRowAvailable())
- {
- throw new IllegalArgumentException("row is unavailable");
- }
- return _list.get(_rowIndex);
- }
-
- @Override
- public int getRowIndex()
- {
- return _rowIndex;
- }
-
- @Override
- public Object getWrappedData()
- {
- return _iterable;
- }
-
- @Override
- public boolean isRowAvailable()
- {
- return _iterable != null && _rowIndex >= 0 && _rowIndex < _list.size();
- }
-
- @Override
- public void setRowIndex(int rowIndex)
- {
- if (rowIndex < -1)
- {
- throw new IllegalArgumentException("illegal rowIndex " + rowIndex);
- }
- int oldRowIndex = _rowIndex;
-
- if (oldRowIndex < rowIndex)
- {
- //Move forward
- for (int i = 0; i < (rowIndex - oldRowIndex); i++)
- {
- if (_list == null)
- {
- _list = new ArrayList<>();
- }
- if (_iterator == null && _iterable != null)
- {
- _iterator = _iterable.iterator();
- }
- if (_iterator != null && _iterator.hasNext())
- {
- _list.add(_iterator.next());
- }
- else
- {
- // Trying to move to a non existent row
- continue;
- }
- }
- }
- else if (oldRowIndex == rowIndex)
- {
- // No change
- }
- else if (oldRowIndex > rowIndex)
- {
- // Retrieve it from cache
- }
- _rowIndex = rowIndex;
- if (_iterable != null && oldRowIndex != _rowIndex)
- {
- Object data = isRowAvailable() ? getRowData() : null;
- DataModelEvent event = new DataModelEvent(this, _rowIndex, data);
- DataModelListener[] listeners = getDataModelListeners();
- for (int i = 0; i < listeners.length; i++)
- {
- listeners[i].rowSelected(event);
- }
- }
- }
-
- @Override
- public void setWrappedData(Object data)
- {
- if (data == null)
- {
- setRowIndex(-1);
- _iterable = null;
- _count = -1;
- }
- else
- {
- _iterable = (Iterable<E>)data;
- _rowIndex = -1;
- setRowIndex(0);
- if (data instanceof Set)
- {
- _count = ((Set)data).size();
- }
- else if (data instanceof List)
- {
- _count = ((List)data).size();
- }
- else if (data instanceof Map)
- {
- _count = ((Map)data).size();
- }
- else if (data instanceof Collection)
- {
- _count = ((Collection)data).size();
- }
- else
- {
- _count = -1;
- }
- }
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.model;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ *
+ * @since 2.3
+ */
+public class IterableDataModel<E> extends DataModel<E>
+{
+ private int _rowIndex = -1;
+ private Iterable<E> _iterable;
+ private List<E> _list;
+ private Iterator<E> _iterator;
+ private int _count = -1;
+
+ public IterableDataModel()
+ {
+ }
+
+ public IterableDataModel(Iterable<E> iterable)
+ {
+ if (iterable == null)
+ {
+ throw new NullPointerException("array");
+ }
+ setWrappedData(iterable);
+ }
+
+ @Override
+ public int getRowCount()
+ {
+ return _count;
+ }
+
+ @Override
+ public E getRowData()
+ {
+ if (_iterable == null)
+ {
+ return null;
+ }
+ if (!isRowAvailable())
+ {
+ throw new IllegalArgumentException("row is unavailable");
+ }
+ return _list.get(_rowIndex);
+ }
+
+ @Override
+ public int getRowIndex()
+ {
+ return _rowIndex;
+ }
+
+ @Override
+ public Object getWrappedData()
+ {
+ return _iterable;
+ }
+
+ @Override
+ public boolean isRowAvailable()
+ {
+ return _iterable != null && _rowIndex >= 0 && _rowIndex < _list.size();
+ }
+
+ @Override
+ public void setRowIndex(int rowIndex)
+ {
+ if (rowIndex < -1)
+ {
+ throw new IllegalArgumentException("illegal rowIndex " + rowIndex);
+ }
+ int oldRowIndex = _rowIndex;
+
+ if (oldRowIndex < rowIndex)
+ {
+ //Move forward
+ for (int i = 0; i < (rowIndex - oldRowIndex); i++)
+ {
+ if (_list == null)
+ {
+ _list = new ArrayList<>();
+ }
+ if (_iterator == null && _iterable != null)
+ {
+ _iterator = _iterable.iterator();
+ }
+ if (_iterator != null && _iterator.hasNext())
+ {
+ _list.add(_iterator.next());
+ }
+ else
+ {
+ // Trying to move to a non existent row
+ continue;
+ }
+ }
+ }
+ else if (oldRowIndex == rowIndex)
+ {
+ // No change
+ }
+ else if (oldRowIndex > rowIndex)
+ {
+ // Retrieve it from cache
+ }
+ _rowIndex = rowIndex;
+ if (_iterable != null && oldRowIndex != _rowIndex)
+ {
+ Object data = isRowAvailable() ? getRowData() : null;
+ DataModelEvent event = new DataModelEvent(this, _rowIndex, data);
+ DataModelListener[] listeners = getDataModelListeners();
+ for (int i = 0; i < listeners.length; i++)
+ {
+ listeners[i].rowSelected(event);
+ }
+ }
+ }
+
+ @Override
+ public void setWrappedData(Object data)
+ {
+ if (data == null)
+ {
+ setRowIndex(-1);
+ _iterable = null;
+ _count = -1;
+ }
+ else
+ {
+ _iterable = (Iterable<E>)data;
+ _rowIndex = -1;
+ setRowIndex(0);
+ if (data instanceof Set)
+ {
+ _count = ((Set)data).size();
+ }
+ else if (data instanceof List)
+ {
+ _count = ((List)data).size();
+ }
+ else if (data instanceof Map)
+ {
+ _count = ((Map)data).size();
+ }
+ else if (data instanceof Collection)
+ {
+ _count = ((Collection)data).size();
+ }
+ else
+ {
+ _count = -1;
+ }
+ }
+ }
+}
diff --git a/api/src/main/java/jakarta/faces/push/Push.java b/api/src/main/java/jakarta/faces/push/Push.java
index 6fd2528..13f13d7 100644
--- a/api/src/main/java/jakarta/faces/push/Push.java
+++ b/api/src/main/java/jakarta/faces/push/Push.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package jakarta.faces.push;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import jakarta.enterprise.util.Nonbinding;
-import jakarta.inject.Qualifier;
-
-/**
- *
- */
-@Qualifier
-@Retention(value=RetentionPolicy.RUNTIME)
-@Target(value={ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
-public @interface Push
-{
- public @Nonbinding String channel() default "";
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package jakarta.faces.push;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import jakarta.enterprise.util.Nonbinding;
+import jakarta.inject.Qualifier;
+
+/**
+ *
+ */
+@Qualifier
+@Retention(value=RetentionPolicy.RUNTIME)
+@Target(value={ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
+public @interface Push
+{
+ public @Nonbinding String channel() default "";
+}
diff --git a/api/src/main/java/jakarta/faces/push/PushContext.java b/api/src/main/java/jakarta/faces/push/PushContext.java
index 4294c0a..94fa22a 100644
--- a/api/src/main/java/jakarta/faces/push/PushContext.java
+++ b/api/src/main/java/jakarta/faces/push/PushContext.java
@@ -1,45 +1,45 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package jakarta.faces.push;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Future;
-
-/**
- *
- */
-public interface PushContext extends Serializable
-{
-
- public static final String ENABLE_WEBSOCKET_ENDPOINT_PARAM_NAME = "jakarta.faces.ENABLE_WEBSOCKET_ENDPOINT";
-
- public static final String WEBSOCKET_ENDPOINT_PORT_PARAM_NAME = "jakarta.faces.WEBSOCKET_ENDPOINT_PORT";
-
- public static final String URI_PREFIX = "/jakarta.faces.push";
-
- public Set<Future<Void>> send(Object message);
-
- public <S extends Serializable> Set<Future<Void>> send(Object message, S user);
-
- public <S extends Serializable> Map<S, Set<Future<Void>>> send(Object message, Collection<S> users);
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package jakarta.faces.push;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Future;
+
+/**
+ *
+ */
+public interface PushContext extends Serializable
+{
+
+ public static final String ENABLE_WEBSOCKET_ENDPOINT_PARAM_NAME = "jakarta.faces.ENABLE_WEBSOCKET_ENDPOINT";
+
+ public static final String WEBSOCKET_ENDPOINT_PORT_PARAM_NAME = "jakarta.faces.WEBSOCKET_ENDPOINT_PORT";
+
+ public static final String URI_PREFIX = "/jakarta.faces.push";
+
+ public Set<Future<Void>> send(Object message);
+
+ public <S extends Serializable> Set<Future<Void>> send(Object message, S user);
+
+ public <S extends Serializable> Map<S, Set<Future<Void>>> send(Object message, Collection<S> users);
+}
diff --git a/api/src/main/java/org/apache/myfaces/core/api/shared/ELContextDecorator.java b/api/src/main/java/org/apache/myfaces/core/api/shared/ELContextDecorator.java
index b58903a..fef8609 100644
--- a/api/src/main/java/org/apache/myfaces/core/api/shared/ELContextDecorator.java
+++ b/api/src/main/java/org/apache/myfaces/core/api/shared/ELContextDecorator.java
@@ -1,106 +1,106 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.api.shared;
-
-import java.util.Locale;
-import jakarta.el.ELContext;
-import jakarta.el.ELResolver;
-import jakarta.el.FunctionMapper;
-import jakarta.el.VariableMapper;
-
-/**
- * This ELContext is used to hook into the EL handling, by decorating the
- * ELResolver chain with a custom ELResolver.
- */
-public class ELContextDecorator extends ELContext
-{
- private final ELContext ctx;
- private final ELResolver interceptingResolver;
-
- /**
- * Only used by ValueExpressionResolver.
- *
- * @param elContext The standard ELContext. All method calls, except getELResolver, are delegated to it.
- * @param interceptingResolver The ELResolver to be returned by getELResolver.
- */
- public ELContextDecorator(final ELContext elContext, final ELResolver interceptingResolver)
- {
- this.ctx = elContext;
- this.interceptingResolver = interceptingResolver;
- }
-
- /**
- * This is the important one, it returns the passed ELResolver.
- * @return The ELResolver passed into the constructor.
- */
- @Override
- public ELResolver getELResolver()
- {
- return interceptingResolver;
- }
-
- @Override
- public FunctionMapper getFunctionMapper()
- {
- return ctx.getFunctionMapper();
- }
-
- @Override
- public VariableMapper getVariableMapper()
- {
- return ctx.getVariableMapper();
- }
-
- @Override
- public void setPropertyResolved(final boolean resolved)
- {
- ctx.setPropertyResolved(resolved);
- }
-
- @Override
- public boolean isPropertyResolved()
- {
- return ctx.isPropertyResolved();
- }
-
- @Override
- public void putContext(final Class key, Object contextObject)
- {
- ctx.putContext(key, contextObject);
- }
-
- @Override
- public Object getContext(final Class key)
- {
- return ctx.getContext(key);
- }
-
- @Override
- public Locale getLocale()
- {
- return ctx.getLocale();
- }
-
- @Override
- public void setLocale(final Locale locale)
- {
- ctx.setLocale(locale);
- }
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.api.shared;
+
+import java.util.Locale;
+import jakarta.el.ELContext;
+import jakarta.el.ELResolver;
+import jakarta.el.FunctionMapper;
+import jakarta.el.VariableMapper;
+
+/**
+ * This ELContext is used to hook into the EL handling, by decorating the
+ * ELResolver chain with a custom ELResolver.
+ */
+public class ELContextDecorator extends ELContext
+{
+ private final ELContext ctx;
+ private final ELResolver interceptingResolver;
+
+ /**
+ * Only used by ValueExpressionResolver.
+ *
+ * @param elContext The standard ELContext. All method calls, except getELResolver, are delegated to it.
+ * @param interceptingResolver The ELResolver to be returned by getELResolver.
+ */
+ public ELContextDecorator(final ELContext elContext, final ELResolver interceptingResolver)
+ {
+ this.ctx = elContext;
+ this.interceptingResolver = interceptingResolver;
+ }
+
+ /**
+ * This is the important one, it returns the passed ELResolver.
+ * @return The ELResolver passed into the constructor.
+ */
+ @Override
+ public ELResolver getELResolver()
+ {
+ return interceptingResolver;
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper()
+ {
+ return ctx.getFunctionMapper();
+ }
+
+ @Override
+ public VariableMapper getVariableMapper()
+ {
+ return ctx.getVariableMapper();
+ }
+
+ @Override
+ public void setPropertyResolved(final boolean resolved)
+ {
+ ctx.setPropertyResolved(resolved);
+ }
+
+ @Override
+ public boolean isPropertyResolved()
+ {
+ return ctx.isPropertyResolved();
+ }
+
+ @Override
+ public void putContext(final Class key, Object contextObject)
+ {
+ ctx.putContext(key, contextObject);
+ }
+
+ @Override
+ public Object getContext(final Class key)
+ {
+ return ctx.getContext(key);
+ }
+
+ @Override
+ public Locale getLocale()
+ {
+ return ctx.getLocale();
+ }
+
+ @Override
+ public void setLocale(final Locale locale)
+ {
+ ctx.setLocale(locale);
+ }
+}
+
diff --git a/api/src/main/java/org/apache/myfaces/core/api/shared/FacesMessageInterpolator.java b/api/src/main/java/org/apache/myfaces/core/api/shared/FacesMessageInterpolator.java
index f4079b5..3a8264e 100644
--- a/api/src/main/java/org/apache/myfaces/core/api/shared/FacesMessageInterpolator.java
+++ b/api/src/main/java/org/apache/myfaces/core/api/shared/FacesMessageInterpolator.java
@@ -1,55 +1,55 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.api.shared;
-
-import java.util.Locale;
-import jakarta.faces.context.FacesContext;
-import jakarta.validation.MessageInterpolator;
-
-/**
- * Note: Before 2.1.5/2.0.11 there was another strategy for this point to minimize
- * the instances used, but after checking this with a profiler, it is more expensive to
- * call FacesContext.getCurrentInstance() than create this object for bean validation.
- *
- * Standard MessageInterpolator, as described in the JSR-314 spec.
- */
-public class FacesMessageInterpolator implements MessageInterpolator
-{
- private final FacesContext facesContext;
- private final MessageInterpolator interpolator;
-
- public FacesMessageInterpolator(final MessageInterpolator interpolator, final FacesContext facesContext)
- {
- this.interpolator = interpolator;
- this.facesContext = facesContext;
- }
-
- @Override
- public String interpolate(final String s, final MessageInterpolator.Context context)
- {
- Locale locale = facesContext.getViewRoot().getLocale();
- return interpolator.interpolate(s, context, locale);
- }
-
- @Override
- public String interpolate(final String s, final MessageInterpolator.Context context, final Locale locale)
- {
- return interpolator.interpolate(s, context, locale);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.api.shared;
+
+import java.util.Locale;
+import jakarta.faces.context.FacesContext;
+import jakarta.validation.MessageInterpolator;
+
+/**
+ * Note: Before 2.1.5/2.0.11 there was another strategy for this point to minimize
+ * the instances used, but after checking this with a profiler, it is more expensive to
+ * call FacesContext.getCurrentInstance() than create this object for bean validation.
+ *
+ * Standard MessageInterpolator, as described in the JSR-314 spec.
+ */
+public class FacesMessageInterpolator implements MessageInterpolator
+{
+ private final FacesContext facesContext;
+ private final MessageInterpolator interpolator;
+
+ public FacesMessageInterpolator(final MessageInterpolator interpolator, final FacesContext facesContext)
+ {
+ this.interpolator = interpolator;
+ this.facesContext = facesContext;
+ }
+
+ @Override
+ public String interpolate(final String s, final MessageInterpolator.Context context)
+ {
+ Locale locale = facesContext.getViewRoot().getLocale();
+ return interpolator.interpolate(s, context, locale);
+ }
+
+ @Override
+ public String interpolate(final String s, final MessageInterpolator.Context context, final Locale locale)
+ {
+ return interpolator.interpolate(s, context, locale);
+ }
+}
diff --git a/api/src/main/java/org/apache/myfaces/core/api/shared/ValueReferenceResolver.java b/api/src/main/java/org/apache/myfaces/core/api/shared/ValueReferenceResolver.java
index fd86032..cd671b0 100644
--- a/api/src/main/java/org/apache/myfaces/core/api/shared/ValueReferenceResolver.java
+++ b/api/src/main/java/org/apache/myfaces/core/api/shared/ValueReferenceResolver.java
@@ -1,66 +1,66 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.api.shared;
-
-import jakarta.el.ELContext;
-import jakarta.el.ValueExpression;
-import jakarta.el.ValueReference;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.el.CompositeComponentExpressionHolder;
-
-public class ValueReferenceResolver
-{
- /**
- * Get the ValueReference from the ValueExpression.
- *
- * @param valueExpression The ValueExpression for value.
- * @param context The FacesContext.
- * @return A ValueReferenceWrapper with the necessary information about the ValueReference.
- */
- public static ValueReference resolve(ValueExpression valueExpression, FacesContext context)
- {
- ELContext elCtx = context.getELContext();
- return ValueReferenceResolver.resolve(valueExpression, elCtx);
- }
-
- /**
- * This method can be used to extract the ValueReference from the given ValueExpression.
- *
- * @param valueExpression The ValueExpression to resolve.
- * @param elCtx The ELContext, needed to parse and execute the expression.
- * @return The ValueReferenceWrapper.
- */
- public static ValueReference resolve(ValueExpression valueExpression, ELContext elCtx)
- {
- ValueReference valueReference = valueExpression.getValueReference(elCtx);
-
- while (valueReference != null && valueReference.getBase() instanceof CompositeComponentExpressionHolder)
- {
- valueExpression = ((CompositeComponentExpressionHolder) valueReference.getBase())
- .getExpression((String) valueReference.getProperty());
- if (valueExpression == null)
- {
- break;
- }
- valueReference = valueExpression.getValueReference(elCtx);
- }
-
- return valueReference;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.api.shared;
+
+import jakarta.el.ELContext;
+import jakarta.el.ValueExpression;
+import jakarta.el.ValueReference;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.el.CompositeComponentExpressionHolder;
+
+public class ValueReferenceResolver
+{
+ /**
+ * Get the ValueReference from the ValueExpression.
+ *
+ * @param valueExpression The ValueExpression for value.
+ * @param context The FacesContext.
+ * @return A ValueReferenceWrapper with the necessary information about the ValueReference.
+ */
+ public static ValueReference resolve(ValueExpression valueExpression, FacesContext context)
+ {
+ ELContext elCtx = context.getELContext();
+ return ValueReferenceResolver.resolve(valueExpression, elCtx);
+ }
+
+ /**
+ * This method can be used to extract the ValueReference from the given ValueExpression.
+ *
+ * @param valueExpression The ValueExpression to resolve.
+ * @param elCtx The ELContext, needed to parse and execute the expression.
+ * @return The ValueReferenceWrapper.
+ */
+ public static ValueReference resolve(ValueExpression valueExpression, ELContext elCtx)
+ {
+ ValueReference valueReference = valueExpression.getValueReference(elCtx);
+
+ while (valueReference != null && valueReference.getBase() instanceof CompositeComponentExpressionHolder)
+ {
+ valueExpression = ((CompositeComponentExpressionHolder) valueReference.getBase())
+ .getExpression((String) valueReference.getProperty());
+ if (valueExpression == null)
+ {
+ break;
+ }
+ valueReference = valueExpression.getValueReference(elCtx);
+ }
+
+ return valueReference;
+ }
+}
diff --git a/api/src/main/java/org/apache/myfaces/core/api/shared/lang/LambdaPropertyDescriptor.java b/api/src/main/java/org/apache/myfaces/core/api/shared/lang/LambdaPropertyDescriptor.java
index 284f641..ba4b6bd 100644
--- a/api/src/main/java/org/apache/myfaces/core/api/shared/lang/LambdaPropertyDescriptor.java
+++ b/api/src/main/java/org/apache/myfaces/core/api/shared/lang/LambdaPropertyDescriptor.java
@@ -1,44 +1,44 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.api.shared.lang;
-
-import java.beans.PropertyDescriptor;
-import java.util.function.BiConsumer;
-import java.util.function.Function;
-
-public class LambdaPropertyDescriptor extends PropertyDescriptorWrapper
-{
- Function<Object, Object> readFunction;
- BiConsumer<Object, Object> writeFunction;
-
- public LambdaPropertyDescriptor(Class<?> beanClass, PropertyDescriptor wrapped)
- {
- super(beanClass, wrapped);
- }
-
- public Function<Object, Object> getReadFunction()
- {
- return readFunction;
- }
-
- public BiConsumer<Object, Object> getWriteFunction()
- {
- return writeFunction;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.api.shared.lang;
+
+import java.beans.PropertyDescriptor;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+public class LambdaPropertyDescriptor extends PropertyDescriptorWrapper
+{
+ Function<Object, Object> readFunction;
+ BiConsumer<Object, Object> writeFunction;
+
+ public LambdaPropertyDescriptor(Class<?> beanClass, PropertyDescriptor wrapped)
+ {
+ super(beanClass, wrapped);
+ }
+
+ public Function<Object, Object> getReadFunction()
+ {
+ return readFunction;
+ }
+
+ public BiConsumer<Object, Object> getWriteFunction()
+ {
+ return writeFunction;
+ }
+}
diff --git a/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorUtils.java b/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorUtils.java
index ab41bbe..bdc96e5 100644
--- a/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorUtils.java
+++ b/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorUtils.java
@@ -1,343 +1,343 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.api.shared.lang;
-
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.invoke.CallSite;
-import java.lang.invoke.LambdaConversionException;
-import java.lang.invoke.LambdaMetafactory;
-import java.lang.invoke.MethodHandle;
-import java.lang.invoke.MethodHandles;
-import java.lang.invoke.MethodType;
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.BiConsumer;
-import java.util.function.Function;
-import java.util.function.ObjDoubleConsumer;
-import java.util.function.ObjIntConsumer;
-import java.util.function.ObjLongConsumer;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import jakarta.faces.FacesException;
-import jakarta.faces.context.ExternalContext;
-import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
-
-public class PropertyDescriptorUtils
-{
- private static final Logger LOG = Logger.getLogger(PropertyDescriptorUtils.class.getName());
-
- /**
- * Defines if Lambda expressions (via LambdaMetafactory) are used for getter/setter instead of Reflection.
- */
- @JSFWebConfigParam(since="2.3-next", defaultValue="true", expectedValues="true,false", tags="performance")
- public static final String USE_LAMBDA_METAFACTORY = "org.apache.myfaces.USE_LAMBDA_METAFACTORY";
-
- private static final String CACHE_KEY = PropertyDescriptorUtils.class.getName() + ".CACHE";
-
- private static Method privateLookupIn;
-
- static
- {
- try
- {
- privateLookupIn = MethodHandles.class.getMethod("privateLookupIn", Class.class,
- MethodHandles.Lookup.class);
- }
- catch (Exception e)
- {
- }
- }
-
- private static Map<String, Map<String, ? extends PropertyDescriptorWrapper>> getCache(ExternalContext ec)
- {
- Map<String, Map<String, ? extends PropertyDescriptorWrapper>> cache =
- (Map<String, Map<String, ? extends PropertyDescriptorWrapper>>) ec.getApplicationMap().get(CACHE_KEY);
- if (cache == null)
- {
- cache = new ConcurrentHashMap<>(1000);
- ec.getApplicationMap().put(CACHE_KEY, cache);
- }
-
- return cache;
- }
-
- public static Map<String, ? extends PropertyDescriptorWrapper> getCachedPropertyDescriptors(ExternalContext ec,
- Class<?> target)
- {
- Map<String, ? extends PropertyDescriptorWrapper> cache = getCache(ec).get(target.getName());
- if (cache == null)
- {
- cache = getCache(ec).computeIfAbsent(target.getName(), k -> getPropertyDescriptors(ec, target));
- }
-
- return cache;
- }
-
- public static boolean isUseLambdaMetafactory(ExternalContext ec)
- {
- if (privateLookupIn == null)
- {
- return false;
- }
-
- // activated per default
- String useMethodHandles = ec.getInitParameter(USE_LAMBDA_METAFACTORY);
- return useMethodHandles == null || useMethodHandles.trim().isEmpty() || useMethodHandles.contains("true");
- }
-
- public static Map<String, ? extends PropertyDescriptorWrapper> getPropertyDescriptors(ExternalContext ec,
- Class<?> target)
- {
- if (isUseLambdaMetafactory(ec))
- {
- try
- {
- return getLambdaPropertyDescriptors(target);
- }
- catch (IllegalAccessException e)
- {
- LOG.log(Level.FINEST,
- "Could not generate LambdaPropertyDescriptor for "
- + target.getName() + ". Use PropertyDescriptor...");
- }
- catch (Throwable e)
- {
- LOG.log(Level.INFO,
- "Could not generate LambdaPropertyDescriptor for "
- + target.getName() + ". Use PropertyDescriptor...",
- e);
- }
- }
-
- try
- {
- PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(target).getPropertyDescriptors();
-
- Map<String, PropertyDescriptorWrapper> map = new ConcurrentHashMap<>(propertyDescriptors.length);
-
- for (int i = 0; i < propertyDescriptors.length; i++)
- {
- PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
- Method readMethod = propertyDescriptor.getReadMethod();
-
- map.put(propertyDescriptor.getName(),
- new PropertyDescriptorWrapper(target, propertyDescriptor, readMethod));
- }
-
- return map;
- }
- catch (IntrospectionException e)
- {
- throw new FacesException(e);
- }
- }
-
- public static LambdaPropertyDescriptor getLambdaPropertyDescriptor(Class<?> target, String name)
- {
- try
- {
- PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(target).getPropertyDescriptors();
- if (propertyDescriptors == null || propertyDescriptors.length == 0)
- {
- return null;
- }
-
- for (PropertyDescriptor pd : propertyDescriptors)
- {
- if (name.equals(pd.getName()))
- {
- MethodHandles.Lookup lookup = (MethodHandles.Lookup) privateLookupIn.invoke(null, target,
- MethodHandles.lookup());
- return createLambdaPropertyDescriptor(target, pd, lookup);
- }
- }
-
- throw new FacesException("Property \"" + name + "\" not found on \"" + target.getName() + "\"");
- }
- catch (Throwable e)
- {
- throw new FacesException(e);
- }
- }
-
-
- public static LambdaPropertyDescriptor createLambdaPropertyDescriptor(Class<?> target, PropertyDescriptor pd,
- MethodHandles.Lookup lookup) throws Throwable
- {
- LambdaPropertyDescriptor lpd = new LambdaPropertyDescriptor(target, pd);
-
- Method readMethod = pd.getReadMethod();
- if (readMethod != null)
- {
- MethodHandle handle = lookup.unreflect(readMethod);
- CallSite callSite = LambdaMetafactory.metafactory(lookup,
- "apply",
- MethodType.methodType(Function.class),
- MethodType.methodType(Object.class, Object.class),
- handle,
- handle.type());
- lpd.readFunction = (Function) callSite.getTarget().invokeExact();
- }
-
- Method writeMethod = pd.getWriteMethod();
- if (writeMethod != null)
- {
- MethodHandle handle = lookup.unreflect(writeMethod);
- lpd.writeFunction = createSetter(lookup, lpd, handle);
- }
-
- return lpd;
- }
-
- public static Map<String, LambdaPropertyDescriptor> getLambdaPropertyDescriptors(Class<?> target) throws Throwable
- {
- PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(target).getPropertyDescriptors();
- if (propertyDescriptors == null || propertyDescriptors.length == 0)
- {
- return Collections.emptyMap();
- }
-
- Map<String, LambdaPropertyDescriptor> properties = new ConcurrentHashMap<>(propertyDescriptors.length);
-
- MethodHandles.Lookup lookup = (MethodHandles.Lookup)
- privateLookupIn.invoke(null, target, MethodHandles.lookup());
- for (PropertyDescriptor pd : Introspector.getBeanInfo(target).getPropertyDescriptors())
- {
- LambdaPropertyDescriptor lpd = createLambdaPropertyDescriptor(target, pd, lookup);
- properties.put(pd.getName(), lpd);
- }
-
- return properties;
- }
-
- @SuppressWarnings("unchecked")
- protected static BiConsumer createSetter(MethodHandles.Lookup lookup, LambdaPropertyDescriptor propertyInfo,
- MethodHandle setterHandle)
- throws LambdaConversionException, Throwable
- {
- Class<?> propertyType = propertyInfo.getPropertyType();
- // special handling for primitives required, see https://dzone.com/articles/setters-method-handles-and-java-11
- if (propertyType.isPrimitive())
- {
- if (propertyType == double.class)
- {
- ObjDoubleConsumer consumer = (ObjDoubleConsumer) createSetterCallSite(
- lookup, setterHandle, ObjDoubleConsumer.class, double.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (double) b);
- }
- else if (propertyType == int.class)
- {
- ObjIntConsumer consumer = (ObjIntConsumer) createSetterCallSite(
- lookup, setterHandle, ObjIntConsumer.class, int.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (int) b);
- }
- else if (propertyType == long.class)
- {
- ObjLongConsumer consumer = (ObjLongConsumer) createSetterCallSite(
- lookup, setterHandle, ObjLongConsumer.class, long.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (long) b);
- }
- else if (propertyType == float.class)
- {
- ObjFloatConsumer consumer = (ObjFloatConsumer) createSetterCallSite(
- lookup, setterHandle, ObjFloatConsumer.class, float.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (float) b);
- }
- else if (propertyType == byte.class)
- {
- ObjByteConsumer consumer = (ObjByteConsumer) createSetterCallSite(
- lookup, setterHandle, ObjByteConsumer.class, byte.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (byte) b);
- }
- else if (propertyType == char.class)
- {
- ObjCharConsumer consumer = (ObjCharConsumer) createSetterCallSite(
- lookup, setterHandle, ObjCharConsumer.class, char.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (char) b);
- }
- else if (propertyType == short.class)
- {
- ObjShortConsumer consumer = (ObjShortConsumer) createSetterCallSite(
- lookup, setterHandle, ObjShortConsumer.class, short.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (short) b);
- }
- else if (propertyType == boolean.class)
- {
- ObjBooleanConsumer consumer = (ObjBooleanConsumer) createSetterCallSite(
- lookup, setterHandle, ObjBooleanConsumer.class, boolean.class).getTarget().invokeExact();
- return (a, b) -> consumer.accept(a, (boolean) b);
- }
- else
- {
- throw new RuntimeException("Type is not supported yet: " + propertyType.getName());
- }
- }
- else
- {
- return (BiConsumer) createSetterCallSite(lookup, setterHandle, BiConsumer.class, Object.class).getTarget()
- .invokeExact();
- }
- }
-
- protected static CallSite createSetterCallSite(MethodHandles.Lookup lookup, MethodHandle setter,
- Class<?> interfaceType, Class<?> valueType)
- throws LambdaConversionException
- {
- return LambdaMetafactory.metafactory(lookup,
- "accept",
- MethodType.methodType(interfaceType),
- MethodType.methodType(void.class, Object.class, valueType),
- setter,
- setter.type());
- }
-
- @FunctionalInterface
- public interface ObjFloatConsumer<T extends Object>
- {
- public void accept(T t, float i);
- }
-
- @FunctionalInterface
- public interface ObjByteConsumer<T extends Object>
- {
- public void accept(T t, byte i);
- }
-
- @FunctionalInterface
- public interface ObjCharConsumer<T extends Object>
- {
- public void accept(T t, char i);
- }
-
- @FunctionalInterface
- public interface ObjShortConsumer<T extends Object>
- {
- public void accept(T t, short i);
- }
-
- @FunctionalInterface
- public interface ObjBooleanConsumer<T extends Object>
- {
- public void accept(T t, boolean i);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.api.shared.lang;
+
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.invoke.CallSite;
+import java.lang.invoke.LambdaConversionException;
+import java.lang.invoke.LambdaMetafactory;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+import java.util.function.ObjDoubleConsumer;
+import java.util.function.ObjIntConsumer;
+import java.util.function.ObjLongConsumer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import jakarta.faces.FacesException;
+import jakarta.faces.context.ExternalContext;
+import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFWebConfigParam;
+
+public class PropertyDescriptorUtils
+{
+ private static final Logger LOG = Logger.getLogger(PropertyDescriptorUtils.class.getName());
+
+ /**
+ * Defines if Lambda expressions (via LambdaMetafactory) are used for getter/setter instead of Reflection.
+ */
+ @JSFWebConfigParam(since="2.3-next", defaultValue="true", expectedValues="true,false", tags="performance")
+ public static final String USE_LAMBDA_METAFACTORY = "org.apache.myfaces.USE_LAMBDA_METAFACTORY";
+
+ private static final String CACHE_KEY = PropertyDescriptorUtils.class.getName() + ".CACHE";
+
+ private static Method privateLookupIn;
+
+ static
+ {
+ try
+ {
+ privateLookupIn = MethodHandles.class.getMethod("privateLookupIn", Class.class,
+ MethodHandles.Lookup.class);
+ }
+ catch (Exception e)
+ {
+ }
+ }
+
+ private static Map<String, Map<String, ? extends PropertyDescriptorWrapper>> getCache(ExternalContext ec)
+ {
+ Map<String, Map<String, ? extends PropertyDescriptorWrapper>> cache =
+ (Map<String, Map<String, ? extends PropertyDescriptorWrapper>>) ec.getApplicationMap().get(CACHE_KEY);
+ if (cache == null)
+ {
+ cache = new ConcurrentHashMap<>(1000);
+ ec.getApplicationMap().put(CACHE_KEY, cache);
+ }
+
+ return cache;
+ }
+
+ public static Map<String, ? extends PropertyDescriptorWrapper> getCachedPropertyDescriptors(ExternalContext ec,
+ Class<?> target)
+ {
+ Map<String, ? extends PropertyDescriptorWrapper> cache = getCache(ec).get(target.getName());
+ if (cache == null)
+ {
+ cache = getCache(ec).computeIfAbsent(target.getName(), k -> getPropertyDescriptors(ec, target));
+ }
+
+ return cache;
+ }
+
+ public static boolean isUseLambdaMetafactory(ExternalContext ec)
+ {
+ if (privateLookupIn == null)
+ {
+ return false;
+ }
+
+ // activated per default
+ String useMethodHandles = ec.getInitParameter(USE_LAMBDA_METAFACTORY);
+ return useMethodHandles == null || useMethodHandles.trim().isEmpty() || useMethodHandles.contains("true");
+ }
+
+ public static Map<String, ? extends PropertyDescriptorWrapper> getPropertyDescriptors(ExternalContext ec,
+ Class<?> target)
+ {
+ if (isUseLambdaMetafactory(ec))
+ {
+ try
+ {
+ return getLambdaPropertyDescriptors(target);
+ }
+ catch (IllegalAccessException e)
+ {
+ LOG.log(Level.FINEST,
+ "Could not generate LambdaPropertyDescriptor for "
+ + target.getName() + ". Use PropertyDescriptor...");
+ }
+ catch (Throwable e)
+ {
+ LOG.log(Level.INFO,
+ "Could not generate LambdaPropertyDescriptor for "
+ + target.getName() + ". Use PropertyDescriptor...",
+ e);
+ }
+ }
+
+ try
+ {
+ PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(target).getPropertyDescriptors();
+
+ Map<String, PropertyDescriptorWrapper> map = new ConcurrentHashMap<>(propertyDescriptors.length);
+
+ for (int i = 0; i < propertyDescriptors.length; i++)
+ {
+ PropertyDescriptor propertyDescriptor = propertyDescriptors[i];
+ Method readMethod = propertyDescriptor.getReadMethod();
+
+ map.put(propertyDescriptor.getName(),
+ new PropertyDescriptorWrapper(target, propertyDescriptor, readMethod));
+ }
+
+ return map;
+ }
+ catch (IntrospectionException e)
+ {
+ throw new FacesException(e);
+ }
+ }
+
+ public static LambdaPropertyDescriptor getLambdaPropertyDescriptor(Class<?> target, String name)
+ {
+ try
+ {
+ PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(target).getPropertyDescriptors();
+ if (propertyDescriptors == null || propertyDescriptors.length == 0)
+ {
+ return null;
+ }
+
+ for (PropertyDescriptor pd : propertyDescriptors)
+ {
+ if (name.equals(pd.getName()))
+ {
+ MethodHandles.Lookup lookup = (MethodHandles.Lookup) privateLookupIn.invoke(null, target,
+ MethodHandles.lookup());
+ return createLambdaPropertyDescriptor(target, pd, lookup);
+ }
+ }
+
+ throw new FacesException("Property \"" + name + "\" not found on \"" + target.getName() + "\"");
+ }
+ catch (Throwable e)
+ {
+ throw new FacesException(e);
+ }
+ }
+
+
+ public static LambdaPropertyDescriptor createLambdaPropertyDescriptor(Class<?> target, PropertyDescriptor pd,
+ MethodHandles.Lookup lookup) throws Throwable
+ {
+ LambdaPropertyDescriptor lpd = new LambdaPropertyDescriptor(target, pd);
+
+ Method readMethod = pd.getReadMethod();
+ if (readMethod != null)
+ {
+ MethodHandle handle = lookup.unreflect(readMethod);
+ CallSite callSite = LambdaMetafactory.metafactory(lookup,
+ "apply",
+ MethodType.methodType(Function.class),
+ MethodType.methodType(Object.class, Object.class),
+ handle,
+ handle.type());
+ lpd.readFunction = (Function) callSite.getTarget().invokeExact();
+ }
+
+ Method writeMethod = pd.getWriteMethod();
+ if (writeMethod != null)
+ {
+ MethodHandle handle = lookup.unreflect(writeMethod);
+ lpd.writeFunction = createSetter(lookup, lpd, handle);
+ }
+
+ return lpd;
+ }
+
+ public static Map<String, LambdaPropertyDescriptor> getLambdaPropertyDescriptors(Class<?> target) throws Throwable
+ {
+ PropertyDescriptor[] propertyDescriptors = Introspector.getBeanInfo(target).getPropertyDescriptors();
+ if (propertyDescriptors == null || propertyDescriptors.length == 0)
+ {
+ return Collections.emptyMap();
+ }
+
+ Map<String, LambdaPropertyDescriptor> properties = new ConcurrentHashMap<>(propertyDescriptors.length);
+
+ MethodHandles.Lookup lookup = (MethodHandles.Lookup)
+ privateLookupIn.invoke(null, target, MethodHandles.lookup());
+ for (PropertyDescriptor pd : Introspector.getBeanInfo(target).getPropertyDescriptors())
+ {
+ LambdaPropertyDescriptor lpd = createLambdaPropertyDescriptor(target, pd, lookup);
+ properties.put(pd.getName(), lpd);
+ }
+
+ return properties;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected static BiConsumer createSetter(MethodHandles.Lookup lookup, LambdaPropertyDescriptor propertyInfo,
+ MethodHandle setterHandle)
+ throws LambdaConversionException, Throwable
+ {
+ Class<?> propertyType = propertyInfo.getPropertyType();
+ // special handling for primitives required, see https://dzone.com/articles/setters-method-handles-and-java-11
+ if (propertyType.isPrimitive())
+ {
+ if (propertyType == double.class)
+ {
+ ObjDoubleConsumer consumer = (ObjDoubleConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjDoubleConsumer.class, double.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (double) b);
+ }
+ else if (propertyType == int.class)
+ {
+ ObjIntConsumer consumer = (ObjIntConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjIntConsumer.class, int.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (int) b);
+ }
+ else if (propertyType == long.class)
+ {
+ ObjLongConsumer consumer = (ObjLongConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjLongConsumer.class, long.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (long) b);
+ }
+ else if (propertyType == float.class)
+ {
+ ObjFloatConsumer consumer = (ObjFloatConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjFloatConsumer.class, float.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (float) b);
+ }
+ else if (propertyType == byte.class)
+ {
+ ObjByteConsumer consumer = (ObjByteConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjByteConsumer.class, byte.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (byte) b);
+ }
+ else if (propertyType == char.class)
+ {
+ ObjCharConsumer consumer = (ObjCharConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjCharConsumer.class, char.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (char) b);
+ }
+ else if (propertyType == short.class)
+ {
+ ObjShortConsumer consumer = (ObjShortConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjShortConsumer.class, short.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (short) b);
+ }
+ else if (propertyType == boolean.class)
+ {
+ ObjBooleanConsumer consumer = (ObjBooleanConsumer) createSetterCallSite(
+ lookup, setterHandle, ObjBooleanConsumer.class, boolean.class).getTarget().invokeExact();
+ return (a, b) -> consumer.accept(a, (boolean) b);
+ }
+ else
+ {
+ throw new RuntimeException("Type is not supported yet: " + propertyType.getName());
+ }
+ }
+ else
+ {
+ return (BiConsumer) createSetterCallSite(lookup, setterHandle, BiConsumer.class, Object.class).getTarget()
+ .invokeExact();
+ }
+ }
+
+ protected static CallSite createSetterCallSite(MethodHandles.Lookup lookup, MethodHandle setter,
+ Class<?> interfaceType, Class<?> valueType)
+ throws LambdaConversionException
+ {
+ return LambdaMetafactory.metafactory(lookup,
+ "accept",
+ MethodType.methodType(interfaceType),
+ MethodType.methodType(void.class, Object.class, valueType),
+ setter,
+ setter.type());
+ }
+
+ @FunctionalInterface
+ public interface ObjFloatConsumer<T extends Object>
+ {
+ public void accept(T t, float i);
+ }
+
+ @FunctionalInterface
+ public interface ObjByteConsumer<T extends Object>
+ {
+ public void accept(T t, byte i);
+ }
+
+ @FunctionalInterface
+ public interface ObjCharConsumer<T extends Object>
+ {
+ public void accept(T t, char i);
+ }
+
+ @FunctionalInterface
+ public interface ObjShortConsumer<T extends Object>
+ {
+ public void accept(T t, short i);
+ }
+
+ @FunctionalInterface
+ public interface ObjBooleanConsumer<T extends Object>
+ {
+ public void accept(T t, boolean i);
+ }
+}
diff --git a/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorWrapper.java b/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorWrapper.java
index 96da65f..fe81936 100644
--- a/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorWrapper.java
+++ b/api/src/main/java/org/apache/myfaces/core/api/shared/lang/PropertyDescriptorWrapper.java
@@ -1,86 +1,86 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.api.shared.lang;
-
-import java.beans.PropertyDescriptor;
-import java.lang.ref.Reference;
-import java.lang.ref.SoftReference;
-import java.lang.reflect.Method;
-import jakarta.faces.FacesWrapper;
-
-public class PropertyDescriptorWrapper implements FacesWrapper<PropertyDescriptor>
-{
- private final PropertyDescriptor wrapped;
- private Reference<Method> readMethodRef;
- private Reference<Method> writeMethodRef;
-
- public PropertyDescriptorWrapper(Class<?> beanClass, PropertyDescriptor wrapped)
- {
- this.wrapped = wrapped;
- this.readMethodRef = new SoftReference<>(wrapped.getReadMethod());
- }
-
- public PropertyDescriptorWrapper(Class<?> beanClass, PropertyDescriptor wrapped, Method readMethod)
- {
- this.wrapped = wrapped;
- this.readMethodRef = new SoftReference<>(readMethod);
- }
-
- public Class<?> getPropertyType()
- {
- return wrapped.getPropertyType();
- }
-
- public String getName()
- {
- return wrapped.getName();
- }
-
- @Override
- public PropertyDescriptor getWrapped()
- {
- return wrapped;
- }
-
- public Method getReadMethod()
- {
- Method readMethod = readMethodRef.get();
- if (readMethod == null)
- {
- readMethod = wrapped.getReadMethod();
- readMethodRef = new SoftReference<>(readMethod);
- }
- return readMethod;
- }
-
- public Method getWriteMethod()
- {
- if (writeMethodRef == null || writeMethodRef.get() == null)
- {
- // In facelets, the Method instance used to write the variable is stored
- // in a variable (see org.apache.myfaces.view.facelets.tag.BeanPropertyTagRule),
- // so the impact of this synchronized call at the end is minimal compared with
- // getReadMethod. That's the reason why cache it here in a lazy way is enough
- // instead retrieve it as soon as this holder is created.
- Method writeMethod = wrapped.getWriteMethod();
- writeMethodRef = new SoftReference<>(writeMethod);
- }
- return writeMethodRef.get();
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.api.shared.lang;
+
+import java.beans.PropertyDescriptor;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
+import java.lang.reflect.Method;
+import jakarta.faces.FacesWrapper;
+
+public class PropertyDescriptorWrapper implements FacesWrapper<PropertyDescriptor>
+{
+ private final PropertyDescriptor wrapped;
+ private Reference<Method> readMethodRef;
+ private Reference<Method> writeMethodRef;
+
+ public PropertyDescriptorWrapper(Class<?> beanClass, PropertyDescriptor wrapped)
+ {
+ this.wrapped = wrapped;
+ this.readMethodRef = new SoftReference<>(wrapped.getReadMethod());
+ }
+
+ public PropertyDescriptorWrapper(Class<?> beanClass, PropertyDescriptor wrapped, Method readMethod)
+ {
+ this.wrapped = wrapped;
+ this.readMethodRef = new SoftReference<>(readMethod);
+ }
+
+ public Class<?> getPropertyType()
+ {
+ return wrapped.getPropertyType();
+ }
+
+ public String getName()
+ {
+ return wrapped.getName();
+ }
+
+ @Override
+ public PropertyDescriptor getWrapped()
+ {
+ return wrapped;
+ }
+
+ public Method getReadMethod()
+ {
+ Method readMethod = readMethodRef.get();
+ if (readMethod == null)
+ {
+ readMethod = wrapped.getReadMethod();
+ readMethodRef = new SoftReference<>(readMethod);
+ }
+ return readMethod;
+ }
+
+ public Method getWriteMethod()
+ {
+ if (writeMethodRef == null || writeMethodRef.get() == null)
+ {
+ // In facelets, the Method instance used to write the variable is stored
+ // in a variable (see org.apache.myfaces.view.facelets.tag.BeanPropertyTagRule),
+ // so the impact of this synchronized call at the end is minimal compared with
+ // getReadMethod. That's the reason why cache it here in a lazy way is enough
+ // instead retrieve it as soon as this holder is created.
+ Method writeMethod = wrapped.getWriteMethod();
+ writeMethodRef = new SoftReference<>(writeMethod);
+ }
+ return writeMethodRef.get();
+ }
+}
diff --git a/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/ManagedPropertyBuildStep.java b/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/ManagedPropertyBuildStep.java
index d671d34..9ce6149 100644
--- a/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/ManagedPropertyBuildStep.java
+++ b/extensions/quarkus/deployment/src/main/java/org/apache/myfaces/core/extensions/quarkus/deployment/ManagedPropertyBuildStep.java
@@ -1,77 +1,77 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.deployment;
-
-import java.util.UUID;
-
-import jakarta.faces.annotation.ManagedProperty;
-
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationValue;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.Type;
-
-import io.quarkus.arc.deployment.BeanRegistrationPhaseBuildItem;
-import io.quarkus.arc.processor.BuildExtension;
-import io.quarkus.arc.processor.BuiltinScope;
-import io.quarkus.arc.processor.InjectionPointInfo;
-import io.quarkus.deployment.annotations.BuildProducer;
-import org.apache.myfaces.core.extensions.quarkus.runtime.producer.ManagedPropertyBeanCreator;
-
-public class ManagedPropertyBuildStep
-{
-
- public static void build(BeanRegistrationPhaseBuildItem beanRegistrationPhase,
- BuildProducer<BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem> beanConfigurators)
- {
- for (InjectionPointInfo injectionPoint : beanRegistrationPhase.getContext()
- .get(BuildExtension.Key.INJECTION_POINTS))
- {
- if (injectionPoint.hasDefaultedQualifier())
- {
- // Defaulted qualifier means no @ManagedProperty
- continue;
- }
-
- AnnotationInstance managedProperty = injectionPoint.getRequiredQualifier(
- DotName.createSimple(ManagedProperty.class.getName()));
- if (managedProperty != null)
- {
- AnnotationValue value = managedProperty.value("value");
- if (value == null)
- {
- continue;
- }
-
- Type requiredType = injectionPoint.getRequiredType();
-
- beanConfigurators.produce(new BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem(
- beanRegistrationPhase.getContext()
- .configure(requiredType.name())
- .qualifiers(managedProperty)
- .scope(BuiltinScope.DEPENDENT.getInfo())
- .types(requiredType)
- .creator(ManagedPropertyBeanCreator.class)
- .name(UUID.randomUUID().toString().replace("-", ""))
- .defaultBean()
- .param(ManagedPropertyBeanCreator.EXPRESSION, value.asString())));
- }
- }
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.deployment;
+
+import java.util.UUID;
+
+import jakarta.faces.annotation.ManagedProperty;
+
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.AnnotationValue;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.Type;
+
+import io.quarkus.arc.deployment.BeanRegistrationPhaseBuildItem;
+import io.quarkus.arc.processor.BuildExtension;
+import io.quarkus.arc.processor.BuiltinScope;
+import io.quarkus.arc.processor.InjectionPointInfo;
+import io.quarkus.deployment.annotations.BuildProducer;
+import org.apache.myfaces.core.extensions.quarkus.runtime.producer.ManagedPropertyBeanCreator;
+
+public class ManagedPropertyBuildStep
+{
+
+ public static void build(BeanRegistrationPhaseBuildItem beanRegistrationPhase,
+ BuildProducer<BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem> beanConfigurators)
+ {
+ for (InjectionPointInfo injectionPoint : beanRegistrationPhase.getContext()
+ .get(BuildExtension.Key.INJECTION_POINTS))
+ {
+ if (injectionPoint.hasDefaultedQualifier())
+ {
+ // Defaulted qualifier means no @ManagedProperty
+ continue;
+ }
+
+ AnnotationInstance managedProperty = injectionPoint.getRequiredQualifier(
+ DotName.createSimple(ManagedProperty.class.getName()));
+ if (managedProperty != null)
+ {
+ AnnotationValue value = managedProperty.value("value");
+ if (value == null)
+ {
+ continue;
+ }
+
+ Type requiredType = injectionPoint.getRequiredType();
+
+ beanConfigurators.produce(new BeanRegistrationPhaseBuildItem.BeanConfiguratorBuildItem(
+ beanRegistrationPhase.getContext()
+ .configure(requiredType.name())
+ .qualifiers(managedProperty)
+ .scope(BuiltinScope.DEPENDENT.getInfo())
+ .types(requiredType)
+ .creator(ManagedPropertyBeanCreator.class)
+ .name(UUID.randomUUID().toString().replace("-", ""))
+ .defaultBean()
+ .param(ManagedPropertyBeanCreator.EXPRESSION, value.asString())));
+ }
+ }
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/MyFacesRecorder.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/MyFacesRecorder.java
index eb3bba8..273325b 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/MyFacesRecorder.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/MyFacesRecorder.java
@@ -1,68 +1,68 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime;
-
-import java.lang.annotation.Annotation;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-import jakarta.faces.model.DataModel;
-
-import org.apache.myfaces.flow.FlowReference;
-import org.apache.myfaces.util.lang.ClassUtils;
-
-import io.quarkus.runtime.annotations.Recorder;
-
-@Recorder
-public class MyFacesRecorder
-{
- public static final Map<Class<? extends Annotation>, Set<Class<?>>> ANNOTATED_CLASSES = new LinkedHashMap<>();
- public static final Map<Class<? extends DataModel>, Class<?>> FACES_DATA_MODELS = new LinkedHashMap<>();
- public static final Map<Class, FlowReference> FLOW_REFERENCES = new ConcurrentHashMap<Class, FlowReference>();
-
- @SuppressWarnings("unchecked") //cast to (Class<? extends Annotation>)
- public void registerAnnotatedClass(String annotationName, String clazzName)
- {
- Class<? extends Annotation> annotation =
- (Class<? extends Annotation>) ClassUtils.simpleClassForName(annotationName);
- Class<?> clazz = ClassUtils.simpleClassForName(clazzName);
-
- Set<Class<?>> classes = ANNOTATED_CLASSES.computeIfAbsent(annotation, $ -> new HashSet<>());
- classes.add(clazz);
- }
-
- @SuppressWarnings("unchecked") //cast to (Class<? extends DataModel>)
- public void registerFacesDataModel(String clazzName, String forClassName)
- {
- Class<? extends DataModel> clazz = ClassUtils.simpleClassForName(clazzName);
- Class<?> forClass = ClassUtils.simpleClassForName(forClassName);
-
- FACES_DATA_MODELS.put(clazz, forClass);
- }
-
- public void registerFlowReference(String clazzName, String definingDocumentId, String flowId)
- {
- Class<?> clazz = ClassUtils.simpleClassForName(clazzName);
-
- FLOW_REFERENCES.put(clazz, new FlowReference(definingDocumentId, flowId));
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime;
+
+import java.lang.annotation.Annotation;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import jakarta.faces.model.DataModel;
+
+import org.apache.myfaces.flow.FlowReference;
+import org.apache.myfaces.util.lang.ClassUtils;
+
+import io.quarkus.runtime.annotations.Recorder;
+
+@Recorder
+public class MyFacesRecorder
+{
+ public static final Map<Class<? extends Annotation>, Set<Class<?>>> ANNOTATED_CLASSES = new LinkedHashMap<>();
+ public static final Map<Class<? extends DataModel>, Class<?>> FACES_DATA_MODELS = new LinkedHashMap<>();
+ public static final Map<Class, FlowReference> FLOW_REFERENCES = new ConcurrentHashMap<Class, FlowReference>();
+
+ @SuppressWarnings("unchecked") //cast to (Class<? extends Annotation>)
+ public void registerAnnotatedClass(String annotationName, String clazzName)
+ {
+ Class<? extends Annotation> annotation =
+ (Class<? extends Annotation>) ClassUtils.simpleClassForName(annotationName);
+ Class<?> clazz = ClassUtils.simpleClassForName(clazzName);
+
+ Set<Class<?>> classes = ANNOTATED_CLASSES.computeIfAbsent(annotation, $ -> new HashSet<>());
+ classes.add(clazz);
+ }
+
+ @SuppressWarnings("unchecked") //cast to (Class<? extends DataModel>)
+ public void registerFacesDataModel(String clazzName, String forClassName)
+ {
+ Class<? extends DataModel> clazz = ClassUtils.simpleClassForName(clazzName);
+ Class<?> forClass = ClassUtils.simpleClassForName(forClassName);
+
+ FACES_DATA_MODELS.put(clazz, forClass);
+ }
+
+ public void registerFlowReference(String clazzName, String definingDocumentId, String flowId)
+ {
+ Class<?> clazz = ClassUtils.simpleClassForName(clazzName);
+
+ FLOW_REFERENCES.put(clazz, new FlowReference(definingDocumentId, flowId));
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/QuarkusFacesInitilializer.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/QuarkusFacesInitilializer.java
index a4e3481..159ba36 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/QuarkusFacesInitilializer.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/QuarkusFacesInitilializer.java
@@ -1,60 +1,60 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime;
-
-import java.util.Map;
-
-import javax.enterprise.inject.spi.CDI;
-import jakarta.faces.annotation.FacesConfig;
-import jakarta.faces.model.DataModel;
-import javax.servlet.ServletContext;
-
-import org.apache.myfaces.cdi.config.FacesConfigBeanHolder;
-import org.apache.myfaces.cdi.model.FacesDataModelManager;
-import org.apache.myfaces.spi.FactoryFinderProviderFactory;
-import org.apache.myfaces.webapp.DefaultFacesInitilializer;
-
-import org.apache.myfaces.core.extensions.quarkus.runtime.spi.QuarkusFactoryFinderProviderFactory;
-
-/**
- * Custom FacesInitializer to execute our integration code, always before MyFaces starts.
- * With ServletListeners or other ways, we would have order/priority problems.
- */
-public class QuarkusFacesInitilializer extends DefaultFacesInitilializer
-{
-
- @Override
- public void initFaces(ServletContext servletContext)
- {
- FacesConfigBeanHolder facesConfigBeanHolder = CDI.current().select(FacesConfigBeanHolder.class).get();
- facesConfigBeanHolder.setFacesConfigVersion(FacesConfig.Version.JSF_2_3);
-
- FactoryFinderProviderFactory.setInstance(new QuarkusFactoryFinderProviderFactory());
-
- // see FacesDataModelExtension
- FacesDataModelManager facesDataModelManager = CDI.current().select(FacesDataModelManager.class).get();
- for (Map.Entry<Class<? extends DataModel>, Class<?>> typeInfo : MyFacesRecorder.FACES_DATA_MODELS.entrySet())
- {
- facesDataModelManager.addFacesDataModel(typeInfo.getValue(), typeInfo.getKey());
- }
- facesDataModelManager.init();
-
- super.initFaces(servletContext);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime;
+
+import java.util.Map;
+
+import javax.enterprise.inject.spi.CDI;
+import jakarta.faces.annotation.FacesConfig;
+import jakarta.faces.model.DataModel;
+import javax.servlet.ServletContext;
+
+import org.apache.myfaces.cdi.config.FacesConfigBeanHolder;
+import org.apache.myfaces.cdi.model.FacesDataModelManager;
+import org.apache.myfaces.spi.FactoryFinderProviderFactory;
+import org.apache.myfaces.webapp.DefaultFacesInitilializer;
+
+import org.apache.myfaces.core.extensions.quarkus.runtime.spi.QuarkusFactoryFinderProviderFactory;
+
+/**
+ * Custom FacesInitializer to execute our integration code, always before MyFaces starts.
+ * With ServletListeners or other ways, we would have order/priority problems.
+ */
+public class QuarkusFacesInitilializer extends DefaultFacesInitilializer
+{
+
+ @Override
+ public void initFaces(ServletContext servletContext)
+ {
+ FacesConfigBeanHolder facesConfigBeanHolder = CDI.current().select(FacesConfigBeanHolder.class).get();
+ facesConfigBeanHolder.setFacesConfigVersion(FacesConfig.Version.JSF_2_3);
+
+ FactoryFinderProviderFactory.setInstance(new QuarkusFactoryFinderProviderFactory());
+
+ // see FacesDataModelExtension
+ FacesDataModelManager facesDataModelManager = CDI.current().select(FacesDataModelManager.class).get();
+ for (Map.Entry<Class<? extends DataModel>, Class<?>> typeInfo : MyFacesRecorder.FACES_DATA_MODELS.entrySet())
+ {
+ facesDataModelManager.addFacesDataModel(typeInfo.getValue(), typeInfo.getKey());
+ }
+ facesDataModelManager.init();
+
+ super.initFaces(servletContext);
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplication.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplication.java
index f8de75f..3f6ac70 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplication.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplication.java
@@ -1,59 +1,59 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.application;
-
-import javax.el.CompositeELResolver;
-import javax.el.ELResolver;
-import jakarta.faces.application.Application;
-import jakarta.faces.application.ApplicationWrapper;
-import jakarta.faces.context.FacesContext;
-
-import org.apache.myfaces.config.MyfacesConfig;
-import org.apache.myfaces.config.RuntimeConfig;
-
-import org.apache.myfaces.core.extensions.quarkus.runtime.spi.QuarkusELResolverBuilder;
-
-public class QuarkusApplication extends ApplicationWrapper
-{
- private CompositeELResolver elResolver;
-
- private final RuntimeConfig runtimeConfig;
- private final MyfacesConfig myfacesConfig;
-
- public QuarkusApplication(Application delegate)
- {
- super(delegate);
-
- runtimeConfig = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance());
- myfacesConfig = MyfacesConfig.getCurrentInstance(FacesContext.getCurrentInstance());
- }
-
- @Override
- public final ELResolver getELResolver()
- {
- if (elResolver == null)
- {
- elResolver = new CompositeELResolver();
- new QuarkusELResolverBuilder(runtimeConfig, myfacesConfig).build(elResolver);
- }
-
- return elResolver;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.application;
+
+import javax.el.CompositeELResolver;
+import javax.el.ELResolver;
+import jakarta.faces.application.Application;
+import jakarta.faces.application.ApplicationWrapper;
+import jakarta.faces.context.FacesContext;
+
+import org.apache.myfaces.config.MyfacesConfig;
+import org.apache.myfaces.config.RuntimeConfig;
+
+import org.apache.myfaces.core.extensions.quarkus.runtime.spi.QuarkusELResolverBuilder;
+
+public class QuarkusApplication extends ApplicationWrapper
+{
+ private CompositeELResolver elResolver;
+
+ private final RuntimeConfig runtimeConfig;
+ private final MyfacesConfig myfacesConfig;
+
+ public QuarkusApplication(Application delegate)
+ {
+ super(delegate);
+
+ runtimeConfig = RuntimeConfig.getCurrentInstance(FacesContext.getCurrentInstance());
+ myfacesConfig = MyfacesConfig.getCurrentInstance(FacesContext.getCurrentInstance());
+ }
+
+ @Override
+ public final ELResolver getELResolver()
+ {
+ if (elResolver == null)
+ {
+ elResolver = new CompositeELResolver();
+ new QuarkusELResolverBuilder(runtimeConfig, myfacesConfig).build(elResolver);
+ }
+
+ return elResolver;
+ }
+
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplicationFactory.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplicationFactory.java
index 9125dad..9cb9b6d 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplicationFactory.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/application/QuarkusApplicationFactory.java
@@ -1,50 +1,50 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.application;
-
-import jakarta.faces.application.Application;
-import jakarta.faces.application.ApplicationFactory;
-
-public class QuarkusApplicationFactory extends ApplicationFactory
-{
- private Application application;
-
- public QuarkusApplicationFactory(ApplicationFactory delegate)
- {
- super(delegate);
- }
-
- @Override
- public Application getApplication()
- {
- if (application == null)
- {
- application = new QuarkusApplication(getWrapped().getApplication());
- }
-
- return application;
- }
-
- @Override
- public void setApplication(Application application)
- {
- this.application = new QuarkusApplication(application);
- getWrapped().setApplication(application);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.application;
+
+import jakarta.faces.application.Application;
+import jakarta.faces.application.ApplicationFactory;
+
+public class QuarkusApplicationFactory extends ApplicationFactory
+{
+ private Application application;
+
+ public QuarkusApplicationFactory(ApplicationFactory delegate)
+ {
+ super(delegate);
+ }
+
+ @Override
+ public Application getApplication()
+ {
+ if (application == null)
+ {
+ application = new QuarkusApplication(getWrapped().getApplication());
+ }
+
+ return application;
+ }
+
+ @Override
+ public void setApplication(Application application)
+ {
+ this.application = new QuarkusApplication(application);
+ getWrapped().setApplication(application);
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandler.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandler.java
index 0da08e1..2307beb 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandler.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandler.java
@@ -1,58 +1,58 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.exception;
-
-import java.util.Iterator;
-
-import jakarta.faces.FacesException;
-import jakarta.faces.application.ProjectStage;
-import jakarta.faces.context.ExceptionHandler;
-import jakarta.faces.context.ExceptionHandlerWrapper;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.event.ExceptionQueuedEvent;
-
-/**
- * Custom {@link ExceptionHandler} to log exceptions in development mode.
- */
-public class QuarkusExceptionHandler extends ExceptionHandlerWrapper
-{
- public QuarkusExceptionHandler(ExceptionHandler wrapped)
- {
- super(wrapped);
- }
-
- @Override
- public void handle() throws FacesException
- {
- FacesContext context = FacesContext.getCurrentInstance();
-
- if (context.isProjectStage(ProjectStage.Development))
- {
- Iterator<ExceptionQueuedEvent> iterator = getUnhandledExceptionQueuedEvents().iterator();
- while (iterator.hasNext())
- {
- ExceptionQueuedEvent event = iterator.next();
-
- event.getContext().getException().printStackTrace();
- }
- }
-
- getWrapped().handle();
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.exception;
+
+import java.util.Iterator;
+
+import jakarta.faces.FacesException;
+import jakarta.faces.application.ProjectStage;
+import jakarta.faces.context.ExceptionHandler;
+import jakarta.faces.context.ExceptionHandlerWrapper;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.event.ExceptionQueuedEvent;
+
+/**
+ * Custom {@link ExceptionHandler} to log exceptions in development mode.
+ */
+public class QuarkusExceptionHandler extends ExceptionHandlerWrapper
+{
+ public QuarkusExceptionHandler(ExceptionHandler wrapped)
+ {
+ super(wrapped);
+ }
+
+ @Override
+ public void handle() throws FacesException
+ {
+ FacesContext context = FacesContext.getCurrentInstance();
+
+ if (context.isProjectStage(ProjectStage.Development))
+ {
+ Iterator<ExceptionQueuedEvent> iterator = getUnhandledExceptionQueuedEvents().iterator();
+ while (iterator.hasNext())
+ {
+ ExceptionQueuedEvent event = iterator.next();
+
+ event.getContext().getException().printStackTrace();
+ }
+ }
+
+ getWrapped().handle();
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandlerFactory.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandlerFactory.java
index 69ac72b..23204bf 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandlerFactory.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/exception/QuarkusExceptionHandlerFactory.java
@@ -1,37 +1,37 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.exception;
-
-import jakarta.faces.context.ExceptionHandler;
-import jakarta.faces.context.ExceptionHandlerFactory;
-
-public class QuarkusExceptionHandlerFactory extends ExceptionHandlerFactory
-{
- public QuarkusExceptionHandlerFactory(ExceptionHandlerFactory wrapped)
- {
- super(wrapped);
- }
-
- @Override
- public ExceptionHandler getExceptionHandler()
- {
- return new QuarkusExceptionHandler(getWrapped().getExceptionHandler());
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.exception;
+
+import jakarta.faces.context.ExceptionHandler;
+import jakarta.faces.context.ExceptionHandlerFactory;
+
+public class QuarkusExceptionHandlerFactory extends ExceptionHandlerFactory
+{
+ public QuarkusExceptionHandlerFactory(ExceptionHandlerFactory wrapped)
+ {
+ super(wrapped);
+ }
+
+ @Override
+ public ExceptionHandler getExceptionHandler()
+ {
+ return new QuarkusExceptionHandler(getWrapped().getExceptionHandler());
+ }
+
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/producer/ManagedPropertyBeanCreator.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/producer/ManagedPropertyBeanCreator.java
index 2e6fad7..b494987 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/producer/ManagedPropertyBeanCreator.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/producer/ManagedPropertyBeanCreator.java
@@ -1,48 +1,48 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.producer;
-
-import java.util.Map;
-
-import javax.enterprise.context.spi.CreationalContext;
-import jakarta.faces.FacesException;
-import jakarta.faces.context.FacesContext;
-
-import io.quarkus.arc.BeanCreator;
-
-public class ManagedPropertyBeanCreator implements BeanCreator<Object>
-{
- public static final String EXPRESSION = "expression";
-
- @Override
- public Object create(CreationalContext<Object> cc, Map<String, Object> map)
- {
- String expression = (String) map.get(EXPRESSION);
-
- FacesContext facesContext = FacesContext.getCurrentInstance();
- if (facesContext == null)
- {
- throw new FacesException("@ManagedProperty(\"" + expression
- + "\") can only be resolved in a JSF request!");
- }
-
- return facesContext.getApplication().evaluateExpressionGet(facesContext, expression, Object.class);
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.producer;
+
+import java.util.Map;
+
+import javax.enterprise.context.spi.CreationalContext;
+import jakarta.faces.FacesException;
+import jakarta.faces.context.FacesContext;
+
+import io.quarkus.arc.BeanCreator;
+
+public class ManagedPropertyBeanCreator implements BeanCreator<Object>
+{
+ public static final String EXPRESSION = "expression";
+
+ @Override
+ public Object create(CreationalContext<Object> cc, Map<String, Object> map)
+ {
+ String expression = (String) map.get(EXPRESSION);
+
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ if (facesContext == null)
+ {
+ throw new FacesException("@ManagedProperty(\"" + expression
+ + "\") can only be resolved in a JSF request!");
+ }
+
+ return facesContext.getApplication().evaluateExpressionGet(facesContext, expression, Object.class);
+ }
+
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFacesScopeContext.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFacesScopeContext.java
index d2c1295..64157ce 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFacesScopeContext.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFacesScopeContext.java
@@ -1,90 +1,90 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
-
-import java.lang.annotation.Annotation;
-
-import javax.enterprise.context.spi.Contextual;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.CDI;
-
-import org.apache.myfaces.cdi.FacesScopeContext;
-import org.apache.myfaces.cdi.FacesScoped;
-
-import io.quarkus.arc.InjectableContext;
-
-public class QuarkusFacesScopeContext implements InjectableContext
-{
- private FacesScopeContext wrapped;
-
- public QuarkusFacesScopeContext()
- {
- }
-
- public FacesScopeContext getWrapped()
- {
- if (wrapped == null)
- {
- wrapped = new FacesScopeContext(CDI.current().getBeanManager());
- }
- return wrapped;
- }
-
- @Override
- public void destroy()
- {
-
- }
-
- @Override
- public void destroy(Contextual<?> contextual)
- {
- getWrapped().destroy(contextual);
- }
-
- @Override
- public Class<? extends Annotation> getScope()
- {
- return FacesScoped.class;
- }
-
- @Override
- public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
- {
- return getWrapped().get(contextual, cc);
- }
-
- @Override
- public <T> T get(Contextual<T> contextual)
- {
- return getWrapped().get(contextual);
- }
-
- @Override
- public boolean isActive()
- {
- return getWrapped().isActive();
- }
-
- @Override
- public ContextState getState()
- {
- return null;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
+
+import java.lang.annotation.Annotation;
+
+import javax.enterprise.context.spi.Contextual;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.CDI;
+
+import org.apache.myfaces.cdi.FacesScopeContext;
+import org.apache.myfaces.cdi.FacesScoped;
+
+import io.quarkus.arc.InjectableContext;
+
+public class QuarkusFacesScopeContext implements InjectableContext
+{
+ private FacesScopeContext wrapped;
+
+ public QuarkusFacesScopeContext()
+ {
+ }
+
+ public FacesScopeContext getWrapped()
+ {
+ if (wrapped == null)
+ {
+ wrapped = new FacesScopeContext(CDI.current().getBeanManager());
+ }
+ return wrapped;
+ }
+
+ @Override
+ public void destroy()
+ {
+
+ }
+
+ @Override
+ public void destroy(Contextual<?> contextual)
+ {
+ getWrapped().destroy(contextual);
+ }
+
+ @Override
+ public Class<? extends Annotation> getScope()
+ {
+ return FacesScoped.class;
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
+ {
+ return getWrapped().get(contextual, cc);
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual)
+ {
+ return getWrapped().get(contextual);
+ }
+
+ @Override
+ public boolean isActive()
+ {
+ return getWrapped().isActive();
+ }
+
+ @Override
+ public ContextState getState()
+ {
+ return null;
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFlowScopedContext.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFlowScopedContext.java
index 47fba60..61f9088 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFlowScopedContext.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusFlowScopedContext.java
@@ -1,91 +1,91 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
-
-import java.lang.annotation.Annotation;
-
-import javax.enterprise.context.spi.Contextual;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.CDI;
-import jakarta.faces.flow.FlowScoped;
-
-import org.apache.myfaces.flow.cdi.FlowScopedContextImpl;
-
-import io.quarkus.arc.InjectableContext;
-import org.apache.myfaces.core.extensions.quarkus.runtime.MyFacesRecorder;
-
-public class QuarkusFlowScopedContext implements InjectableContext
-{
- private FlowScopedContextImpl wrapped;
-
- public QuarkusFlowScopedContext()
- {
- }
-
- public FlowScopedContextImpl getWrapped()
- {
- if (wrapped == null)
- {
- wrapped = new FlowScopedContextImpl(CDI.current().getBeanManager(), MyFacesRecorder.FLOW_REFERENCES);
- }
- return wrapped;
- }
-
- @Override
- public void destroy()
- {
-
- }
-
- @Override
- public void destroy(Contextual<?> contextual)
- {
- getWrapped().destroy(contextual);
- }
-
- @Override
- public Class<? extends Annotation> getScope()
- {
- return FlowScoped.class;
- }
-
- @Override
- public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
- {
- return getWrapped().get(contextual, cc);
- }
-
- @Override
- public <T> T get(Contextual<T> contextual)
- {
- return getWrapped().get(contextual);
- }
-
- @Override
- public boolean isActive()
- {
- return getWrapped().isActive();
- }
-
- @Override
- public InjectableContext.ContextState getState()
- {
- return null;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
+
+import java.lang.annotation.Annotation;
+
+import javax.enterprise.context.spi.Contextual;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.CDI;
+import jakarta.faces.flow.FlowScoped;
+
+import org.apache.myfaces.flow.cdi.FlowScopedContextImpl;
+
+import io.quarkus.arc.InjectableContext;
+import org.apache.myfaces.core.extensions.quarkus.runtime.MyFacesRecorder;
+
+public class QuarkusFlowScopedContext implements InjectableContext
+{
+ private FlowScopedContextImpl wrapped;
+
+ public QuarkusFlowScopedContext()
+ {
+ }
+
+ public FlowScopedContextImpl getWrapped()
+ {
+ if (wrapped == null)
+ {
+ wrapped = new FlowScopedContextImpl(CDI.current().getBeanManager(), MyFacesRecorder.FLOW_REFERENCES);
+ }
+ return wrapped;
+ }
+
+ @Override
+ public void destroy()
+ {
+
+ }
+
+ @Override
+ public void destroy(Contextual<?> contextual)
+ {
+ getWrapped().destroy(contextual);
+ }
+
+ @Override
+ public Class<? extends Annotation> getScope()
+ {
+ return FlowScoped.class;
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
+ {
+ return getWrapped().get(contextual, cc);
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual)
+ {
+ return getWrapped().get(contextual);
+ }
+
+ @Override
+ public boolean isActive()
+ {
+ return getWrapped().isActive();
+ }
+
+ @Override
+ public InjectableContext.ContextState getState()
+ {
+ return null;
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewScopeContext.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewScopeContext.java
index 0cce987..e0f6c51 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewScopeContext.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewScopeContext.java
@@ -1,90 +1,90 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
-
-import java.lang.annotation.Annotation;
-
-import javax.enterprise.context.spi.Contextual;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.CDI;
-import jakarta.faces.view.ViewScoped;
-
-import org.apache.myfaces.cdi.view.ViewScopeContext;
-
-import io.quarkus.arc.InjectableContext;
-
-public class QuarkusViewScopeContext implements InjectableContext
-{
- private ViewScopeContext wrapped;
-
- public QuarkusViewScopeContext()
- {
- }
-
- public ViewScopeContext getWrapped()
- {
- if (wrapped == null)
- {
- wrapped = new ViewScopeContext(CDI.current().getBeanManager());
- }
- return wrapped;
- }
-
- @Override
- public void destroy()
- {
-
- }
-
- @Override
- public void destroy(Contextual<?> contextual)
- {
- getWrapped().destroy(contextual);
- }
-
- @Override
- public Class<? extends Annotation> getScope()
- {
- return ViewScoped.class;
- }
-
- @Override
- public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
- {
- return getWrapped().get(contextual, cc);
- }
-
- @Override
- public <T> T get(Contextual<T> contextual)
- {
- return getWrapped().get(contextual);
- }
-
- @Override
- public boolean isActive()
- {
- return getWrapped().isActive();
- }
-
- @Override
- public ContextState getState()
- {
- return null;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
+
+import java.lang.annotation.Annotation;
+
+import javax.enterprise.context.spi.Contextual;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.CDI;
+import jakarta.faces.view.ViewScoped;
+
+import org.apache.myfaces.cdi.view.ViewScopeContext;
+
+import io.quarkus.arc.InjectableContext;
+
+public class QuarkusViewScopeContext implements InjectableContext
+{
+ private ViewScopeContext wrapped;
+
+ public QuarkusViewScopeContext()
+ {
+ }
+
+ public ViewScopeContext getWrapped()
+ {
+ if (wrapped == null)
+ {
+ wrapped = new ViewScopeContext(CDI.current().getBeanManager());
+ }
+ return wrapped;
+ }
+
+ @Override
+ public void destroy()
+ {
+
+ }
+
+ @Override
+ public void destroy(Contextual<?> contextual)
+ {
+ getWrapped().destroy(contextual);
+ }
+
+ @Override
+ public Class<? extends Annotation> getScope()
+ {
+ return ViewScoped.class;
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
+ {
+ return getWrapped().get(contextual, cc);
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual)
+ {
+ return getWrapped().get(contextual);
+ }
+
+ @Override
+ public boolean isActive()
+ {
+ return getWrapped().isActive();
+ }
+
+ @Override
+ public ContextState getState()
+ {
+ return null;
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewTransientScopeContext.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewTransientScopeContext.java
index 2811e70..3f32422 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewTransientScopeContext.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/scopes/QuarkusViewTransientScopeContext.java
@@ -1,91 +1,91 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
-
-import java.lang.annotation.Annotation;
-
-import javax.enterprise.context.spi.Contextual;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.CDI;
-
-import org.apache.myfaces.cdi.view.ViewTransientScopeContext;
-import org.apache.myfaces.cdi.view.ViewTransientScoped;
-
-import io.quarkus.arc.InjectableContext;
-
-public class QuarkusViewTransientScopeContext implements InjectableContext
-{
- private ViewTransientScopeContext wrapped;
-
- public QuarkusViewTransientScopeContext()
- {
- }
-
- public ViewTransientScopeContext getWrapped()
- {
- if (wrapped == null)
- {
- wrapped = new ViewTransientScopeContext(CDI.current().getBeanManager());
- }
- return wrapped;
- }
-
- @Override
- public void destroy()
- {
-
- }
-
- @Override
- public void destroy(Contextual<?> contextual)
- {
- getWrapped().destroy(contextual);
- }
-
- @Override
- public Class<? extends Annotation> getScope()
- {
- return ViewTransientScoped.class;
- }
-
- @Override
- public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
- {
- return getWrapped().get(contextual, cc);
- }
-
- @Override
- public <T> T get(Contextual<T> contextual)
- {
- return getWrapped().get(contextual);
- }
-
- @Override
- public boolean isActive()
- {
- return getWrapped().isActive();
- }
-
- @Override
- public ContextState getState()
- {
- return null;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.scopes;
+
+import java.lang.annotation.Annotation;
+
+import javax.enterprise.context.spi.Contextual;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.CDI;
+
+import org.apache.myfaces.cdi.view.ViewTransientScopeContext;
+import org.apache.myfaces.cdi.view.ViewTransientScoped;
+
+import io.quarkus.arc.InjectableContext;
+
+public class QuarkusViewTransientScopeContext implements InjectableContext
+{
+ private ViewTransientScopeContext wrapped;
+
+ public QuarkusViewTransientScopeContext()
+ {
+ }
+
+ public ViewTransientScopeContext getWrapped()
+ {
+ if (wrapped == null)
+ {
+ wrapped = new ViewTransientScopeContext(CDI.current().getBeanManager());
+ }
+ return wrapped;
+ }
+
+ @Override
+ public void destroy()
+ {
+
+ }
+
+ @Override
+ public void destroy(Contextual<?> contextual)
+ {
+ getWrapped().destroy(contextual);
+ }
+
+ @Override
+ public Class<? extends Annotation> getScope()
+ {
+ return ViewTransientScoped.class;
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual, CreationalContext<T> cc)
+ {
+ return getWrapped().get(contextual, cc);
+ }
+
+ @Override
+ public <T> T get(Contextual<T> contextual)
+ {
+ return getWrapped().get(contextual);
+ }
+
+ @Override
+ public boolean isActive()
+ {
+ return getWrapped().isActive();
+ }
+
+ @Override
+ public ContextState getState()
+ {
+ return null;
+ }
+
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusAnnotationProvider.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusAnnotationProvider.java
index d919851..ad0fdb0 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusAnnotationProvider.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusAnnotationProvider.java
@@ -1,52 +1,52 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-
-import jakarta.faces.context.ExternalContext;
-
-import org.apache.myfaces.spi.AnnotationProvider;
-
-import org.apache.myfaces.core.extensions.quarkus.runtime.MyFacesRecorder;
-
-/**
- * AnnotationProvider which uses the collected classes from the Quarkus Deployment-time.
- */
-public class QuarkusAnnotationProvider extends AnnotationProvider
-{
-
- @Override
- public Map<Class<? extends Annotation>, Set<Class<?>>> getAnnotatedClasses(ExternalContext ctx)
- {
- return MyFacesRecorder.ANNOTATED_CLASSES;
- }
-
- @Override
- public Set<URL> getBaseUrls(ExternalContext ctx) throws IOException
- {
- return Collections.emptySet();
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+
+import jakarta.faces.context.ExternalContext;
+
+import org.apache.myfaces.spi.AnnotationProvider;
+
+import org.apache.myfaces.core.extensions.quarkus.runtime.MyFacesRecorder;
+
+/**
+ * AnnotationProvider which uses the collected classes from the Quarkus Deployment-time.
+ */
+public class QuarkusAnnotationProvider extends AnnotationProvider
+{
+
+ @Override
+ public Map<Class<? extends Annotation>, Set<Class<?>>> getAnnotatedClasses(ExternalContext ctx)
+ {
+ return MyFacesRecorder.ANNOTATED_CLASSES;
+ }
+
+ @Override
+ public Set<URL> getBaseUrls(ExternalContext ctx) throws IOException
+ {
+ return Collections.emptySet();
+ }
+
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusCdiELResolver.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusCdiELResolver.java
index 4291b8f..7c58d60 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusCdiELResolver.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusCdiELResolver.java
@@ -1,131 +1,131 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import java.beans.FeatureDescriptor;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.el.ELContext;
-import javax.el.ELException;
-import javax.el.ELResolver;
-import javax.enterprise.context.Dependent;
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.enterprise.inject.spi.CDI;
-import jakarta.faces.FacesException;
-
-/**
- * Custom {@link ELResolver} for CDI as {@link BeanManager#getELResolver} is not supported on Quarkus.
- * Currently @Dependent is not supported.
- */
-public class QuarkusCdiELResolver extends ELResolver
-{
- private BeanManager beanManager;
- private Map<String, Optional<Object>> cachedProxies;
-
- public QuarkusCdiELResolver()
- {
- beanManager = CDI.current().getBeanManager();
- cachedProxies = new ConcurrentHashMap<>();
- }
-
- @Override
- public Class<?> getCommonPropertyType(ELContext arg0, Object arg1)
- {
- return null;
- }
-
- @Override
- public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext arg0, Object arg1)
- {
- return null;
- }
-
- @Override
- public Class<?> getType(ELContext arg0, Object arg1, Object arg2) throws ELException
- {
- return null;
- }
-
- @Override
- public Object getValue(ELContext context, Object base, Object property) throws ELException
- {
- //we only check root beans
- if (base != null)
- {
- return null;
- }
-
- String beanName = (String) property;
-
- Optional<Object> contextualInstance = cachedProxies.get(beanName);
- if (contextualInstance == null)
- {
- contextualInstance = resolveProxy(beanName);
- cachedProxies.put(beanName, contextualInstance);
- }
-
- if (contextualInstance.isPresent())
- {
- context.setPropertyResolved(true);
- return contextualInstance.get();
- }
-
- return null;
- }
-
- protected Optional<Object> resolveProxy(String beanName)
- {
- Object contextualInstance = null;
-
- Set<Bean<?>> beans = beanManager.getBeans(beanName);
- if (beans != null && !beans.isEmpty())
- {
- Bean<?> bean = beanManager.resolve(beans);
-
- if (bean.getScope().equals(Dependent.class))
- {
- throw new FacesException("@Dependent on beans used in EL are currently not supported! "
- + " Class: " + bean.getBeanClass().toString());
- }
-
- CreationalContext<?> creationalContext = beanManager.createCreationalContext(bean);
- contextualInstance = beanManager.getReference(bean, Object.class, creationalContext);
- }
-
- return contextualInstance == null ? Optional.empty() : Optional.of(contextualInstance);
- }
-
- @Override
- public boolean isReadOnly(ELContext arg0, Object arg1, Object arg2) throws ELException
- {
- return false;
- }
-
- @Override
- public void setValue(ELContext arg0, Object arg1, Object arg2, Object arg3) throws ELException
- {
-
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import java.beans.FeatureDescriptor;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.ELResolver;
+import javax.enterprise.context.Dependent;
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.CDI;
+import jakarta.faces.FacesException;
+
+/**
+ * Custom {@link ELResolver} for CDI as {@link BeanManager#getELResolver} is not supported on Quarkus.
+ * Currently @Dependent is not supported.
+ */
+public class QuarkusCdiELResolver extends ELResolver
+{
+ private BeanManager beanManager;
+ private Map<String, Optional<Object>> cachedProxies;
+
+ public QuarkusCdiELResolver()
+ {
+ beanManager = CDI.current().getBeanManager();
+ cachedProxies = new ConcurrentHashMap<>();
+ }
+
+ @Override
+ public Class<?> getCommonPropertyType(ELContext arg0, Object arg1)
+ {
+ return null;
+ }
+
+ @Override
+ public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext arg0, Object arg1)
+ {
+ return null;
+ }
+
+ @Override
+ public Class<?> getType(ELContext arg0, Object arg1, Object arg2) throws ELException
+ {
+ return null;
+ }
+
+ @Override
+ public Object getValue(ELContext context, Object base, Object property) throws ELException
+ {
+ //we only check root beans
+ if (base != null)
+ {
+ return null;
+ }
+
+ String beanName = (String) property;
+
+ Optional<Object> contextualInstance = cachedProxies.get(beanName);
+ if (contextualInstance == null)
+ {
+ contextualInstance = resolveProxy(beanName);
+ cachedProxies.put(beanName, contextualInstance);
+ }
+
+ if (contextualInstance.isPresent())
+ {
+ context.setPropertyResolved(true);
+ return contextualInstance.get();
+ }
+
+ return null;
+ }
+
+ protected Optional<Object> resolveProxy(String beanName)
+ {
+ Object contextualInstance = null;
+
+ Set<Bean<?>> beans = beanManager.getBeans(beanName);
+ if (beans != null && !beans.isEmpty())
+ {
+ Bean<?> bean = beanManager.resolve(beans);
+
+ if (bean.getScope().equals(Dependent.class))
+ {
+ throw new FacesException("@Dependent on beans used in EL are currently not supported! "
+ + " Class: " + bean.getBeanClass().toString());
+ }
+
+ CreationalContext<?> creationalContext = beanManager.createCreationalContext(bean);
+ contextualInstance = beanManager.getReference(bean, Object.class, creationalContext);
+ }
+
+ return contextualInstance == null ? Optional.empty() : Optional.of(contextualInstance);
+ }
+
+ @Override
+ public boolean isReadOnly(ELContext arg0, Object arg1, Object arg2) throws ELException
+ {
+ return false;
+ }
+
+ @Override
+ public void setValue(ELContext arg0, Object arg1, Object arg2, Object arg3) throws ELException
+ {
+
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusELResolverBuilder.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusELResolverBuilder.java
index 79f5cc3..4a13815 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusELResolverBuilder.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusELResolverBuilder.java
@@ -1,45 +1,45 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import javax.el.ELResolver;
-
-import org.apache.myfaces.config.MyfacesConfig;
-import org.apache.myfaces.config.RuntimeConfig;
-import org.apache.myfaces.el.DefaultELResolverBuilder;
-
-/**
- * Custom {@link org.apache.myfaces.el.ELResolverBuilder} which only works with EL3.x+
- * and replaces the {@link javax.enterprise.inject.spi.BeanManager#getELResolver()}
- * with our own {@link QuarkusCdiELResolver}
- */
-public class QuarkusELResolverBuilder extends DefaultELResolverBuilder
-{
-
- public QuarkusELResolverBuilder(RuntimeConfig runtimeConfig, MyfacesConfig myfacesConfig)
- {
- super(runtimeConfig, myfacesConfig);
- }
-
- @Override
- protected ELResolver getCDIELResolver()
- {
- return new QuarkusCdiELResolver();
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import javax.el.ELResolver;
+
+import org.apache.myfaces.config.MyfacesConfig;
+import org.apache.myfaces.config.RuntimeConfig;
+import org.apache.myfaces.el.DefaultELResolverBuilder;
+
+/**
+ * Custom {@link org.apache.myfaces.el.ELResolverBuilder} which only works with EL3.x+
+ * and replaces the {@link javax.enterprise.inject.spi.BeanManager#getELResolver()}
+ * with our own {@link QuarkusCdiELResolver}
+ */
+public class QuarkusELResolverBuilder extends DefaultELResolverBuilder
+{
+
+ public QuarkusELResolverBuilder(RuntimeConfig runtimeConfig, MyfacesConfig myfacesConfig)
+ {
+ super(runtimeConfig, myfacesConfig);
+ }
+
+ @Override
+ protected ELResolver getCDIELResolver()
+ {
+ return new QuarkusCdiELResolver();
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFacesFlowProvider.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFacesFlowProvider.java
index e7c5ea4..7e694f5 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFacesFlowProvider.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFacesFlowProvider.java
@@ -1,38 +1,38 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import java.util.Iterator;
-
-import javax.enterprise.inject.spi.CDI;
-import javax.enterprise.util.AnnotationLiteral;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.flow.Flow;
-import jakarta.faces.flow.builder.FlowDefinition;
-
-import org.apache.myfaces.flow.cdi.DefaultCDIFacesFlowProvider;
-
-public class QuarkusFacesFlowProvider extends DefaultCDIFacesFlowProvider
-{
- @Override
- public Iterator<Flow> getAnnotatedFlows(FacesContext facesContext)
- {
- return CDI.current().select(Flow.class, new AnnotationLiteral<FlowDefinition>(){ }).stream().iterator();
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import java.util.Iterator;
+
+import javax.enterprise.inject.spi.CDI;
+import javax.enterprise.util.AnnotationLiteral;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.flow.Flow;
+import jakarta.faces.flow.builder.FlowDefinition;
+
+import org.apache.myfaces.flow.cdi.DefaultCDIFacesFlowProvider;
+
+public class QuarkusFacesFlowProvider extends DefaultCDIFacesFlowProvider
+{
+ @Override
+ public Iterator<Flow> getAnnotatedFlows(FacesContext facesContext)
+ {
+ return CDI.current().select(Flow.class, new AnnotationLiteral<FlowDefinition>(){ }).stream().iterator();
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProvider.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProvider.java
index 5f5d067..c6c6708 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProvider.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProvider.java
@@ -1,103 +1,103 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import java.lang.reflect.Constructor;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import jakarta.faces.FacesException;
-
-import org.apache.myfaces.spi.FactoryFinderProvider;
-import org.apache.myfaces.util.lang.ClassUtils;
-
-/**
- * Custom FactoryFinder, as the original FactoryFinder cares to much about ClassLoaders,
- * which doesn't work with Quarkus native.
- * As Quarkus == 1 webapp, we can simple handle everything as static.
- */
-public class QuarkusFactoryFinderProvider implements FactoryFinderProvider
-{
- private final HashMap<String, List<String>> classes = new HashMap<>();
- private final HashMap<String, Object> instances = new HashMap<>();
-
- @Override
- public Object getFactory(String factoryName) throws FacesException
- {
- Object instance = instances.get(factoryName);
-
- if (instance == null)
- {
- try
- {
- List<String> impls = classes.computeIfAbsent(factoryName, k -> new ArrayList<>(3));
-
- Iterator<String> implsIterator = impls.iterator();
- while (implsIterator.hasNext())
- {
- Class implClass = ClassUtils.classForName(implsIterator.next());
-
- for (Constructor<?> constructor : implClass.getConstructors())
- {
- if (constructor.getParameterTypes().length == 1)
- {
- instance = constructor.newInstance(new Object[] { instance });
- }
- }
-
- if (instance == null)
- {
- for (Constructor<?> constructor : implClass.getConstructors())
- {
- if (constructor.getParameterTypes().length == 0)
- {
- instance = constructor.newInstance();
- }
- }
- }
- }
-
- instances.put(factoryName, instance);
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
-
- return instance;
- }
-
- @Override
- public void releaseFactories() throws FacesException
- {
- instances.clear();
- }
-
- @Override
- public void setFactory(String factoryName, String implName)
- {
- List<String> impls = classes.computeIfAbsent(factoryName, k -> new ArrayList<>(3));
- impls.add(implName);
-
- instances.remove(factoryName);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import jakarta.faces.FacesException;
+
+import org.apache.myfaces.spi.FactoryFinderProvider;
+import org.apache.myfaces.util.lang.ClassUtils;
+
+/**
+ * Custom FactoryFinder, as the original FactoryFinder cares to much about ClassLoaders,
+ * which doesn't work with Quarkus native.
+ * As Quarkus == 1 webapp, we can simple handle everything as static.
+ */
+public class QuarkusFactoryFinderProvider implements FactoryFinderProvider
+{
+ private final HashMap<String, List<String>> classes = new HashMap<>();
+ private final HashMap<String, Object> instances = new HashMap<>();
+
+ @Override
+ public Object getFactory(String factoryName) throws FacesException
+ {
+ Object instance = instances.get(factoryName);
+
+ if (instance == null)
+ {
+ try
+ {
+ List<String> impls = classes.computeIfAbsent(factoryName, k -> new ArrayList<>(3));
+
+ Iterator<String> implsIterator = impls.iterator();
+ while (implsIterator.hasNext())
+ {
+ Class implClass = ClassUtils.classForName(implsIterator.next());
+
+ for (Constructor<?> constructor : implClass.getConstructors())
+ {
+ if (constructor.getParameterTypes().length == 1)
+ {
+ instance = constructor.newInstance(new Object[] { instance });
+ }
+ }
+
+ if (instance == null)
+ {
+ for (Constructor<?> constructor : implClass.getConstructors())
+ {
+ if (constructor.getParameterTypes().length == 0)
+ {
+ instance = constructor.newInstance();
+ }
+ }
+ }
+ }
+
+ instances.put(factoryName, instance);
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ return instance;
+ }
+
+ @Override
+ public void releaseFactories() throws FacesException
+ {
+ instances.clear();
+ }
+
+ @Override
+ public void setFactory(String factoryName, String implName)
+ {
+ List<String> impls = classes.computeIfAbsent(factoryName, k -> new ArrayList<>(3));
+ impls.add(implName);
+
+ instances.remove(factoryName);
+ }
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProviderFactory.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProviderFactory.java
index 0b6fb6a..b3d0232 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProviderFactory.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusFactoryFinderProviderFactory.java
@@ -1,34 +1,34 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import org.apache.myfaces.spi.FactoryFinderProvider;
-import org.apache.myfaces.spi.FactoryFinderProviderFactory;
-
-public class QuarkusFactoryFinderProviderFactory extends FactoryFinderProviderFactory
-{
- private static final QuarkusFactoryFinderProvider FACTORY_FINDER_PROVIDER = new QuarkusFactoryFinderProvider();
-
- @Override
- public FactoryFinderProvider getFactoryFinderProvider()
- {
- return FACTORY_FINDER_PROVIDER;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import org.apache.myfaces.spi.FactoryFinderProvider;
+import org.apache.myfaces.spi.FactoryFinderProviderFactory;
+
+public class QuarkusFactoryFinderProviderFactory extends FactoryFinderProviderFactory
+{
+ private static final QuarkusFactoryFinderProvider FACTORY_FINDER_PROVIDER = new QuarkusFactoryFinderProvider();
+
+ @Override
+ public FactoryFinderProvider getFactoryFinderProvider()
+ {
+ return FACTORY_FINDER_PROVIDER;
+ }
+
+}
diff --git a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusInjectionProvider.java b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusInjectionProvider.java
index a180cbb..fc9f932 100644
--- a/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusInjectionProvider.java
+++ b/extensions/quarkus/runtime/src/main/java/org/apache/myfaces/core/extensions/quarkus/runtime/spi/QuarkusInjectionProvider.java
@@ -1,50 +1,50 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
-
-import org.apache.myfaces.spi.InjectionProvider;
-import org.apache.myfaces.spi.InjectionProviderException;
-
-/**
- * Needs to be implemented to support injection in JSF artifacts:
- * https://github.com/quarkusio/quarkus/blob/master/extensions/arc/deployment/
- * src/main/java/io/quarkus/arc/deployment/ArcTestResourceProvider.java#L21-L54
- * https://github.com/quarkusio/quarkus/issues/2378
- */
-public class QuarkusInjectionProvider extends InjectionProvider
-{
- @Override
- public Object inject(Object instance) throws InjectionProviderException
- {
- return instance;
- }
-
- @Override
- public void postConstruct(Object instance, Object creationMetaData) throws InjectionProviderException
- {
-
- }
-
- @Override
- public void preDestroy(Object instance, Object creationMetaData) throws InjectionProviderException
- {
-
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.runtime.spi;
+
+import org.apache.myfaces.spi.InjectionProvider;
+import org.apache.myfaces.spi.InjectionProviderException;
+
+/**
+ * Needs to be implemented to support injection in JSF artifacts:
+ * https://github.com/quarkusio/quarkus/blob/master/extensions/arc/deployment/
+ * src/main/java/io/quarkus/arc/deployment/ArcTestResourceProvider.java#L21-L54
+ * https://github.com/quarkusio/quarkus/issues/2378
+ */
+public class QuarkusInjectionProvider extends InjectionProvider
+{
+ @Override
+ public Object inject(Object instance) throws InjectionProviderException
+ {
+ return instance;
+ }
+
+ @Override
+ public void postConstruct(Object instance, Object creationMetaData) throws InjectionProviderException
+ {
+
+ }
+
+ @Override
+ public void preDestroy(Object instance, Object creationMetaData) throws InjectionProviderException
+ {
+
+ }
+
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/Car.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/Car.java
index e3e8e0d..e896fde 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/Car.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/Car.java
@@ -1,120 +1,120 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.io.Serializable;
-
-public class Car implements Serializable {
-
- public String id;
- public String brand;
- public int year;
- public String color;
- public int price;
- public boolean sold;
-
- public Car() {
- }
-
- public Car(String id, String brand, int year, String color) {
- this.id = id;
- this.brand = brand;
- this.year = year;
- this.color = color;
- }
-
- public Car(String id, String brand, int year, String color, int price, boolean sold) {
- this.id = id;
- this.brand = brand;
- this.year = year;
- this.color = color;
- this.price = price;
- this.sold = sold;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getBrand() {
- return brand;
- }
-
- public void setBrand(String brand) {
- this.brand = brand;
- }
-
- public int getYear() {
- return year;
- }
-
- public void setYear(int year) {
- this.year = year;
- }
-
- public String getColor() {
- return color;
- }
-
- public void setColor(String color) {
- this.color = color;
- }
-
- public int getPrice() {
- return price;
- }
-
- public void setPrice(int price) {
- this.price = price;
- }
-
- public boolean isSold() {
- return sold;
- }
-
- public void setSold(boolean sold) {
- this.sold = sold;
- }
-
- @Override
- public int hashCode() {
- int hash = 7;
- hash = 59 * hash + (this.id != null ? this.id.hashCode() : 0);
- return hash;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- final Car other = (Car) obj;
- if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) {
- return false;
- }
- return true;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.io.Serializable;
+
+public class Car implements Serializable {
+
+ public String id;
+ public String brand;
+ public int year;
+ public String color;
+ public int price;
+ public boolean sold;
+
+ public Car() {
+ }
+
+ public Car(String id, String brand, int year, String color) {
+ this.id = id;
+ this.brand = brand;
+ this.year = year;
+ this.color = color;
+ }
+
+ public Car(String id, String brand, int year, String color, int price, boolean sold) {
+ this.id = id;
+ this.brand = brand;
+ this.year = year;
+ this.color = color;
+ this.price = price;
+ this.sold = sold;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getBrand() {
+ return brand;
+ }
+
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public int getYear() {
+ return year;
+ }
+
+ public void setYear(int year) {
+ this.year = year;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public void setColor(String color) {
+ this.color = color;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ public boolean isSold() {
+ return sold;
+ }
+
+ public void setSold(boolean sold) {
+ this.sold = sold;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 7;
+ hash = 59 * hash + (this.id != null ? this.id.hashCode() : 0);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Car other = (Car) obj;
+ if ((this.id == null) ? (other.id != null) : !this.id.equals(other.id)) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/CarService.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/CarService.java
index 692af75..a995440 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/CarService.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/CarService.java
@@ -1,102 +1,102 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
-
-@Named("carService")
-@ApplicationScoped
-public class CarService {
-
- private final static String[] colors;
-
- private final static String[] brands;
-
- static {
- colors = new String[10];
- colors[0] = "Black";
- colors[1] = "White";
- colors[2] = "Green";
- colors[3] = "Red";
- colors[4] = "Blue";
- colors[5] = "Orange";
- colors[6] = "Silver";
- colors[7] = "Yellow";
- colors[8] = "Brown";
- colors[9] = "Maroon";
-
- brands = new String[10];
- brands[0] = "BMW";
- brands[1] = "Mercedes";
- brands[2] = "Volvo";
- brands[3] = "Audi";
- brands[4] = "Renault";
- brands[5] = "Fiat";
- brands[6] = "Volkswagen";
- brands[7] = "Honda";
- brands[8] = "Jaguar";
- brands[9] = "Ford";
- }
-
- public List<Car> createCars(int size) {
- List<Car> list = new ArrayList<Car>();
- for (int i = 0; i < size; i++) {
- list.add(new Car(getRandomId(), getRandomBrand(), getRandomYear(), getRandomColor(), getRandomPrice(), getRandomSoldState()));
- }
-
- return list;
- }
-
- private String getRandomId() {
- return UUID.randomUUID().toString().substring(0, 8);
- }
-
- private int getRandomYear() {
- return (int) (Math.random() * 50 + 1960);
- }
-
- private String getRandomColor() {
- return colors[(int) (Math.random() * 10)];
- }
-
- private String getRandomBrand() {
- return brands[(int) (Math.random() * 10)];
- }
-
- private int getRandomPrice() {
- return (int) (Math.random() * 100000);
- }
-
- private boolean getRandomSoldState() {
- return Math.random() > 0.5;
- }
-
- public List<String> getColors() {
- return Arrays.asList(colors);
- }
-
- public List<String> getBrands() {
- return Arrays.asList(brands);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Named;
+
+@Named("carService")
+@ApplicationScoped
+public class CarService {
+
+ private final static String[] colors;
+
+ private final static String[] brands;
+
+ static {
+ colors = new String[10];
+ colors[0] = "Black";
+ colors[1] = "White";
+ colors[2] = "Green";
+ colors[3] = "Red";
+ colors[4] = "Blue";
+ colors[5] = "Orange";
+ colors[6] = "Silver";
+ colors[7] = "Yellow";
+ colors[8] = "Brown";
+ colors[9] = "Maroon";
+
+ brands = new String[10];
+ brands[0] = "BMW";
+ brands[1] = "Mercedes";
+ brands[2] = "Volvo";
+ brands[3] = "Audi";
+ brands[4] = "Renault";
+ brands[5] = "Fiat";
+ brands[6] = "Volkswagen";
+ brands[7] = "Honda";
+ brands[8] = "Jaguar";
+ brands[9] = "Ford";
+ }
+
+ public List<Car> createCars(int size) {
+ List<Car> list = new ArrayList<Car>();
+ for (int i = 0; i < size; i++) {
+ list.add(new Car(getRandomId(), getRandomBrand(), getRandomYear(), getRandomColor(), getRandomPrice(), getRandomSoldState()));
+ }
+
+ return list;
+ }
+
+ private String getRandomId() {
+ return UUID.randomUUID().toString().substring(0, 8);
+ }
+
+ private int getRandomYear() {
+ return (int) (Math.random() * 50 + 1960);
+ }
+
+ private String getRandomColor() {
+ return colors[(int) (Math.random() * 10)];
+ }
+
+ private String getRandomBrand() {
+ return brands[(int) (Math.random() * 10)];
+ }
+
+ private int getRandomPrice() {
+ return (int) (Math.random() * 100000);
+ }
+
+ private boolean getRandomSoldState() {
+ return Math.random() > 0.5;
+ }
+
+ public List<String> getColors() {
+ return Arrays.asList(colors);
+ }
+
+ public List<String> getBrands() {
+ return Arrays.asList(brands);
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/FileView.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/FileView.java
index c700594..9c8f33b 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/FileView.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/FileView.java
@@ -1,58 +1,58 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import org.primefaces.event.FileUploadEvent;
-import org.primefaces.model.file.UploadedFile;
-
-import javax.enterprise.context.RequestScoped;
-import javax.inject.Named;
-import java.io.Serializable;
-
-@RequestScoped
-@Named
-public class FileView implements Serializable {
-
- private UploadedFile file;
-
- public String getName()
- {
- return "blub";
- }
-
- public void upload() {
- System.out.println("simple file upload start");
- if (file != null) {
- System.out.println(file.getFileName());
- }
- }
-
- public void handleFileUpload(FileUploadEvent event){
- System.out.println("auto file upload start");
- System.out.println(event.getFile().getFileName());
- }
-
- public UploadedFile getFile() {
- return file;
- }
-
- public void setFile(UploadedFile file) {
- this.file = file;
- }
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import org.primefaces.event.FileUploadEvent;
+import org.primefaces.model.file.UploadedFile;
+
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Named;
+import java.io.Serializable;
+
+@RequestScoped
+@Named
+public class FileView implements Serializable {
+
+ private UploadedFile file;
+
+ public String getName()
+ {
+ return "blub";
+ }
+
+ public void upload() {
+ System.out.println("simple file upload start");
+ if (file != null) {
+ System.out.println(file.getFileName());
+ }
+ }
+
+ public void handleFileUpload(FileUploadEvent event){
+ System.out.println("auto file upload start");
+ System.out.println(event.getFile().getFileName());
+ }
+
+ public UploadedFile getFile() {
+ return file;
+ }
+
+ public void setFile(UploadedFile file) {
+ this.file = file;
+ }
}
\ No newline at end of file
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/InputController.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/InputController.java
index 701970b..d5582af 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/InputController.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/InputController.java
@@ -1,46 +1,46 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.io.Serializable;
-import javax.enterprise.context.SessionScoped;
-import jakarta.faces.annotation.ManagedProperty;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-@Named
-@SessionScoped
-public class InputController implements Serializable{
-
- @Inject
- @ManagedProperty(value = "#{carService}")
- CarService carService;
-
- private String val;
-
- public String getVal() {
- System.err.println("carService: " + carService);
- return val;
- }
-
- public void setVal(String val) {
- this.val = val;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.io.Serializable;
+import javax.enterprise.context.SessionScoped;
+import jakarta.faces.annotation.ManagedProperty;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+@Named
+@SessionScoped
+public class InputController implements Serializable{
+
+ @Inject
+ @ManagedProperty(value = "#{carService}")
+ CarService carService;
+
+ private String val;
+
+ public String getVal() {
+ System.err.println("carService: " + carService);
+ return val;
+ }
+
+ public void setVal(String val) {
+ this.val = val;
+ }
+
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyCarDataModel.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyCarDataModel.java
index 5b6539f..224c403 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyCarDataModel.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyCarDataModel.java
@@ -1,113 +1,113 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import org.primefaces.model.FilterMeta;
-import org.primefaces.model.LazyDataModel;
-import org.primefaces.model.SortOrder;
-
-/**
- * Dummy implementation of LazyDataModel that uses a list to mimic a real datasource like a database.
- */
-public class LazyCarDataModel extends LazyDataModel<Car> {
-
- private List<Car> datasource;
-
- public LazyCarDataModel(List<Car> datasource) {
- this.datasource = datasource;
- }
-
- @Override
- public Car getRowData(String rowKey) {
- for (Car car : datasource) {
- if (car.getId().equals(rowKey)) {
- return car;
- }
- }
-
- return null;
- }
-
- @Override
- public Object getRowKey(Car car) {
- return car.getId();
- }
-
- @Override
- public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, FilterMeta> filters) {
- List<Car> data = new ArrayList<Car>();
-
- //filter
- for (Car car : datasource) {
- boolean match = true;
-
- if (filters != null) {
- for (Iterator<String> it = filters.keySet().iterator(); it.hasNext();) {
- try {
- String filterProperty = it.next();
- Object filterValue = filters.get(filterProperty).getFilterValue();
- String fieldValue = String.valueOf(car.getClass().getField(filterProperty).get(car));
-
- if (filterValue == null || fieldValue.startsWith(filterValue.toString())) {
- match = true;
- }
- else {
- match = false;
- break;
- }
- }
- catch (Exception e) {
- match = false;
- }
- }
- }
-
- if (match) {
- data.add(car);
- }
- }
-
- //sort
- if (sortField != null) {
- Collections.sort(data, new LazySorter(sortField, sortOrder));
- }
-
- //rowCount
- int dataSize = data.size();
- this.setRowCount(dataSize);
-
- //paginate
- if (dataSize > pageSize) {
- try {
- return data.subList(first, first + pageSize);
- }
- catch (IndexOutOfBoundsException e) {
- return data.subList(first, first + (dataSize % pageSize));
- }
- }
- else {
- return data;
- }
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import org.primefaces.model.FilterMeta;
+import org.primefaces.model.LazyDataModel;
+import org.primefaces.model.SortOrder;
+
+/**
+ * Dummy implementation of LazyDataModel that uses a list to mimic a real datasource like a database.
+ */
+public class LazyCarDataModel extends LazyDataModel<Car> {
+
+ private List<Car> datasource;
+
+ public LazyCarDataModel(List<Car> datasource) {
+ this.datasource = datasource;
+ }
+
+ @Override
+ public Car getRowData(String rowKey) {
+ for (Car car : datasource) {
+ if (car.getId().equals(rowKey)) {
+ return car;
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ public Object getRowKey(Car car) {
+ return car.getId();
+ }
+
+ @Override
+ public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, FilterMeta> filters) {
+ List<Car> data = new ArrayList<Car>();
+
+ //filter
+ for (Car car : datasource) {
+ boolean match = true;
+
+ if (filters != null) {
+ for (Iterator<String> it = filters.keySet().iterator(); it.hasNext();) {
+ try {
+ String filterProperty = it.next();
+ Object filterValue = filters.get(filterProperty).getFilterValue();
+ String fieldValue = String.valueOf(car.getClass().getField(filterProperty).get(car));
+
+ if (filterValue == null || fieldValue.startsWith(filterValue.toString())) {
+ match = true;
+ }
+ else {
+ match = false;
+ break;
+ }
+ }
+ catch (Exception e) {
+ match = false;
+ }
+ }
+ }
+
+ if (match) {
+ data.add(car);
+ }
+ }
+
+ //sort
+ if (sortField != null) {
+ Collections.sort(data, new LazySorter(sortField, sortOrder));
+ }
+
+ //rowCount
+ int dataSize = data.size();
+ this.setRowCount(dataSize);
+
+ //paginate
+ if (dataSize > pageSize) {
+ try {
+ return data.subList(first, first + pageSize);
+ }
+ catch (IndexOutOfBoundsException e) {
+ return data.subList(first, first + (dataSize % pageSize));
+ }
+ }
+ else {
+ return data;
+ }
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazySorter.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazySorter.java
index 4774fa9..0338c63 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazySorter.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazySorter.java
@@ -1,56 +1,56 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.util.Comparator;
-import org.primefaces.model.SortOrder;
-
-public class LazySorter implements Comparator<Car> {
-
- private String sortField;
- private SortOrder sortOrder;
-
- public LazySorter(String sortField, SortOrder sortOrder) {
- this.sortField = sortField;
- this.sortOrder = sortOrder;
- }
-
- @Override
- public int compare(Car car1, Car car2) {
- try {
- Object value1 = Car.class.getMethod("get" + capitalize(this.sortField)).invoke(car1);
- Object value2 = Car.class.getMethod("get" + capitalize(this.sortField)).invoke(car2);
-
- int value = ((Comparable) value1).compareTo(value2);
-
- return SortOrder.ASCENDING.equals(sortOrder) ? value : -1 * value;
- }
- catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- public String capitalize(String value) {
- if (value == null || value.trim().isEmpty()) {
- return null;
- }
-
- return value.substring(0, 1).toUpperCase() + value.substring(1);
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.util.Comparator;
+import org.primefaces.model.SortOrder;
+
+public class LazySorter implements Comparator<Car> {
+
+ private String sortField;
+ private SortOrder sortOrder;
+
+ public LazySorter(String sortField, SortOrder sortOrder) {
+ this.sortField = sortField;
+ this.sortOrder = sortOrder;
+ }
+
+ @Override
+ public int compare(Car car1, Car car2) {
+ try {
+ Object value1 = Car.class.getMethod("get" + capitalize(this.sortField)).invoke(car1);
+ Object value2 = Car.class.getMethod("get" + capitalize(this.sortField)).invoke(car2);
+
+ int value = ((Comparable) value1).compareTo(value2);
+
+ return SortOrder.ASCENDING.equals(sortOrder) ? value : -1 * value;
+ }
+ catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public String capitalize(String value) {
+ if (value == null || value.trim().isEmpty()) {
+ return null;
+ }
+
+ return value.substring(0, 1).toUpperCase() + value.substring(1);
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyView.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyView.java
index 2f7f031..be59f8a 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyView.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/LazyView.java
@@ -1,82 +1,82 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.io.Serializable;
-import javax.annotation.PostConstruct;
-import jakarta.faces.application.FacesMessage;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.view.ViewScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-import org.primefaces.event.SelectEvent;
-import org.primefaces.model.LazyDataModel;
-
-@Named("dtLazyView")
-@ViewScoped
-public class LazyView implements Serializable {
-
- private LazyDataModel<Car> lazyModel;
-
- private Car selectedCar;
-
- private String inputVal;
-
- @Inject
- CarService service;
-
- @PostConstruct
- public void init() {
- lazyModel = new LazyCarDataModel(service.createCars(200));
- }
-
- public LazyDataModel<Car> getLazyModel() {
- return lazyModel;
- }
-
- public Car getSelectedCar() {
- return selectedCar;
- }
-
- public void setSelectedCar(Car selectedCar) {
- this.selectedCar = selectedCar;
- }
-
- public void setService(CarService service) {
- this.service = service;
- }
-
- public void onRowSelect(SelectEvent event) {
- FacesMessage msg = new FacesMessage("Car Selected", ((Car) event.getObject()).getId());
- FacesContext.getCurrentInstance().addMessage(null, msg);
- }
-
- public String getInputVal() {
- return inputVal;
- }
-
- public void setInputVal(String inputVal) {
- this.inputVal = inputVal;
- }
-
- public void saveInput() {
- System.out.println("Input val is: " + inputVal);
- System.out.println("Input val is null?" + (inputVal == null));
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.io.Serializable;
+import javax.annotation.PostConstruct;
+import jakarta.faces.application.FacesMessage;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.view.ViewScoped;
+import javax.inject.Inject;
+import javax.inject.Named;
+import org.primefaces.event.SelectEvent;
+import org.primefaces.model.LazyDataModel;
+
+@Named("dtLazyView")
+@ViewScoped
+public class LazyView implements Serializable {
+
+ private LazyDataModel<Car> lazyModel;
+
+ private Car selectedCar;
+
+ private String inputVal;
+
+ @Inject
+ CarService service;
+
+ @PostConstruct
+ public void init() {
+ lazyModel = new LazyCarDataModel(service.createCars(200));
+ }
+
+ public LazyDataModel<Car> getLazyModel() {
+ return lazyModel;
+ }
+
+ public Car getSelectedCar() {
+ return selectedCar;
+ }
+
+ public void setSelectedCar(Car selectedCar) {
+ this.selectedCar = selectedCar;
+ }
+
+ public void setService(CarService service) {
+ this.service = service;
+ }
+
+ public void onRowSelect(SelectEvent event) {
+ FacesMessage msg = new FacesMessage("Car Selected", ((Car) event.getObject()).getId());
+ FacesContext.getCurrentInstance().addMessage(null, msg);
+ }
+
+ public String getInputVal() {
+ return inputVal;
+ }
+
+ public void setInputVal(String inputVal) {
+ this.inputVal = inputVal;
+ }
+
+ public void saveInput() {
+ System.out.println("Input val is: " + inputVal);
+ System.out.println("Input val is null?" + (inputVal == null));
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MethodHandleELResolverBean.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MethodHandleELResolverBean.java
index 2941f1b..a3ad372 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MethodHandleELResolverBean.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MethodHandleELResolverBean.java
@@ -1,88 +1,88 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.io.Serializable;
-import java.util.List;
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import jakarta.faces.event.PhaseEvent;
-import jakarta.faces.event.PhaseId;
-import jakarta.faces.event.PhaseListener;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-@Named
-@ApplicationScoped
-public class MethodHandleELResolverBean implements Serializable, PhaseListener {
-
- @Inject
- CarService service;
-
- private List<Car> cars;
-
- private int test;
- private String test2;
-
- private long start;
-
- @PostConstruct
- public void init() {
- cars = service.createCars(20000);
- }
-
- public List<Car> getCars() {
- return cars;
- }
-
- public void setCars(List<Car> cars) {
- this.cars = cars;
- }
-
- public int getTest() {
- return test;
- }
-
- public void setTest(int test) {
- this.test = test;
- }
-
- public String getTest2() {
- return test2;
- }
-
- public void setTest2(String test2) {
- this.test2 = test2;
- }
-
- @Override
- public void afterPhase(PhaseEvent event) {
- System.err.println((System.currentTimeMillis() - start) + "ms");
- }
-
- @Override
- public void beforePhase(PhaseEvent event) {
- start = System.currentTimeMillis();
- }
-
- @Override
- public PhaseId getPhaseId() {
- return PhaseId.RENDER_RESPONSE;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.io.Serializable;
+import java.util.List;
+import javax.annotation.PostConstruct;
+import javax.enterprise.context.ApplicationScoped;
+import jakarta.faces.event.PhaseEvent;
+import jakarta.faces.event.PhaseId;
+import jakarta.faces.event.PhaseListener;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+@Named
+@ApplicationScoped
+public class MethodHandleELResolverBean implements Serializable, PhaseListener {
+
+ @Inject
+ CarService service;
+
+ private List<Car> cars;
+
+ private int test;
+ private String test2;
+
+ private long start;
+
+ @PostConstruct
+ public void init() {
+ cars = service.createCars(20000);
+ }
+
+ public List<Car> getCars() {
+ return cars;
+ }
+
+ public void setCars(List<Car> cars) {
+ this.cars = cars;
+ }
+
+ public int getTest() {
+ return test;
+ }
+
+ public void setTest(int test) {
+ this.test = test;
+ }
+
+ public String getTest2() {
+ return test2;
+ }
+
+ public void setTest2(String test2) {
+ this.test2 = test2;
+ }
+
+ @Override
+ public void afterPhase(PhaseEvent event) {
+ System.err.println((System.currentTimeMillis() - start) + "ms");
+ }
+
+ @Override
+ public void beforePhase(PhaseEvent event) {
+ start = System.currentTimeMillis();
+ }
+
+ @Override
+ public PhaseId getPhaseId() {
+ return PhaseId.RENDER_RESPONSE;
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyBacking.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyBacking.java
index 28e3fd7..42a15ff 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyBacking.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyBacking.java
@@ -1,54 +1,54 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.RequestScoped;
-import javax.inject.Inject;
-import javax.inject.Named;
-
-@Named
-@RequestScoped
-public class MyBacking {
-
- @Inject
- CarService carService;
-
- private MyCollection<Car> cars;
-
- @PostConstruct
- public void init()
- {
- cars = new MyCollection<>();
- for (Car car : carService.createCars(100))
- {
- cars.add(car);
- }
- }
-
- public MyCollection<Car> getCars() {
- return cars;
- }
-
- public void setCars(MyCollection<Car> cars) {
- this.cars = cars;
- }
-
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import javax.annotation.PostConstruct;
+import javax.enterprise.context.RequestScoped;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+@Named
+@RequestScoped
+public class MyBacking {
+
+ @Inject
+ CarService carService;
+
+ private MyCollection<Car> cars;
+
+ @PostConstruct
+ public void init()
+ {
+ cars = new MyCollection<>();
+ for (Car car : carService.createCars(100))
+ {
+ cars.add(car);
+ }
+ }
+
+ public MyCollection<Car> getCars() {
+ return cars;
+ }
+
+ public void setCars(MyCollection<Car> cars) {
+ this.cars = cars;
+ }
+
+
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollection.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollection.java
index ea011ab..ad06ddd 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollection.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollection.java
@@ -1,26 +1,26 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.util.ArrayList;
-
-public class MyCollection<T> extends ArrayList<T>
-{
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.util.ArrayList;
+
+public class MyCollection<T> extends ArrayList<T>
+{
+
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollectionModel.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollectionModel.java
index a13291f..c5408df 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollectionModel.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyCollectionModel.java
@@ -1,39 +1,39 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import java.util.List;
-import jakarta.faces.model.FacesDataModel;
-import jakarta.faces.model.ListDataModel;
-
-@FacesDataModel(forClass = MyCollection.class)
-public class MyCollectionModel<E> extends ListDataModel<E> {
-
- public MyCollectionModel()
- {
- super();
- System.err.println("+++++++++++++++");
- }
-
- public MyCollectionModel(List<E> list)
- {
- super(list);
- System.err.println("+++++++++++++++2");
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import java.util.List;
+import jakarta.faces.model.FacesDataModel;
+import jakarta.faces.model.ListDataModel;
+
+@FacesDataModel(forClass = MyCollection.class)
+public class MyCollectionModel<E> extends ListDataModel<E> {
+
+ public MyCollectionModel()
+ {
+ super();
+ System.err.println("+++++++++++++++");
+ }
+
+ public MyCollectionModel(List<E> list)
+ {
+ super(list);
+ System.err.println("+++++++++++++++2");
+ }
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverter.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverter.java
index 6f6d134..ae6c986 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverter.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverter.java
@@ -1,39 +1,39 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.convert.Converter;
-import jakarta.faces.convert.ConverterException;
-import jakarta.faces.convert.FacesConverter;
-
-@FacesConverter(managed = false, value = "myConverter")
-public class MyConverter implements Converter<Object>{
- @Override
- public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
- @Override
- public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.convert.Converter;
+import jakarta.faces.convert.ConverterException;
+import jakarta.faces.convert.FacesConverter;
+
+@FacesConverter(managed = false, value = "myConverter")
+public class MyConverter implements Converter<Object>{
+ @Override
+ public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverterManaged.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverterManaged.java
index 8b972f9..e3df8f3 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverterManaged.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyConverterManaged.java
@@ -1,39 +1,39 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.convert.Converter;
-import jakarta.faces.convert.ConverterException;
-import jakarta.faces.convert.FacesConverter;
-
-@FacesConverter(managed = true, value = "myConverterManaged")
-public class MyConverterManaged implements Converter<Object>{
- @Override
- public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
- @Override
- public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.convert.Converter;
+import jakarta.faces.convert.ConverterException;
+import jakarta.faces.convert.FacesConverter;
+
+@FacesConverter(managed = true, value = "myConverterManaged")
+public class MyConverterManaged implements Converter<Object>{
+ @Override
+ public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+}
diff --git a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyValidator.java b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyValidator.java
index 92677f9..a3543a8 100644
--- a/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyValidator.java
+++ b/extensions/quarkus/showcase/src/main/java/org/apache/myfaces/core/extensions/quarkus/showcase/view/MyValidator.java
@@ -1,43 +1,43 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.myfaces.core.extensions.quarkus.showcase.view;
-
-import jakarta.faces.component.UIComponent;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.validator.FacesValidator;
-import jakarta.faces.validator.Validator;
-import jakarta.faces.validator.ValidatorException;
-import javax.inject.Inject;
-
-@FacesValidator(value = "myVal", managed = true)
-public class MyValidator implements Validator<String>{
-
- @Inject
- CarService carService;
-
- public MyValidator()
- {
- }
-
- @Override
- public void validate(FacesContext context, UIComponent component, String value) throws ValidatorException {
- System.err.println("############### validate: " + value + " (carService=" + carService + ")");
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.core.extensions.quarkus.showcase.view;
+
+import jakarta.faces.component.UIComponent;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.validator.FacesValidator;
+import jakarta.faces.validator.Validator;
+import jakarta.faces.validator.ValidatorException;
+import javax.inject.Inject;
+
+@FacesValidator(value = "myVal", managed = true)
+public class MyValidator implements Validator<String>{
+
+ @Inject
+ CarService carService;
+
+ public MyValidator()
+ {
+ }
+
+ @Override
+ public void validate(FacesContext context, UIComponent component, String value) throws ValidatorException {
+ System.err.println("############### validate: " + value + " (carService=" + carService + ")");
+ }
+
... 55255 lines suppressed ...