You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2022/04/25 15:06:44 UTC

[tomee] branch master updated: TOMEE-3923 Remove CODI arquillian tests and examples as it's not been maintained for almost 10 years

This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/master by this push:
     new 7840cd78fa TOMEE-3923 Remove CODI arquillian tests and examples as it's not been maintained for almost 10 years
7840cd78fa is described below

commit 7840cd78fa51372baae7eec52919f3a6d5dbc38f
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Mon Apr 25 17:06:36 2022 +0200

    TOMEE-3923 Remove CODI arquillian tests and examples as it's not been maintained for almost 10 years
---
 .../arquillian-tomee-codi-tests/pom.xml            |  37 --
 .../extcdi/start/MyFacesExtCdiDeploymentTest.java  |  65 ---
 .../src/test/resources/arquillian.xml              |  80 ----
 arquillian/arquillian-tomee-tests/pom.xml          |   1 -
 examples/myfaces-codi-demo/README.adoc             |  77 ----
 examples/myfaces-codi-demo/README_es.adoc          |  79 ----
 examples/myfaces-codi-demo/README_pt.adoc          |  77 ----
 examples/myfaces-codi-demo/pom.xml                 | 133 ------
 .../superbiz/myfaces/CustomJsfModuleConfig.java    |  34 --
 .../org/superbiz/myfaces/CustomProjectStage.java   |  32 --
 .../org/superbiz/myfaces/DebugPhaseListener.java   |  54 ---
 .../myfaces/domain/AbstractDomainObject.java       |  44 --
 .../java/org/superbiz/myfaces/domain/Comment.java  |  54 ---
 .../java/org/superbiz/myfaces/domain/Feedback.java |  70 ---
 .../java/org/superbiz/myfaces/domain/User.java     | 104 -----
 .../myfaces/domain/validation/DifferentName.java   |  39 --
 .../domain/validation/DifferentNameValidator.java  |  34 --
 .../superbiz/myfaces/domain/validation/Full.java   |  27 --
 .../superbiz/myfaces/domain/validation/Name.java   |  49 ---
 .../myfaces/domain/validation/Partial.java         |  23 -
 .../myfaces/domain/validation/UniqueUserName.java  |  23 -
 .../domain/validation/UniqueUserNameValidator.java |  42 --
 .../myfaces/domain/validation/UserName.java        |  45 --
 .../myfaces/repository/FeedbackRepository.java     |  25 --
 .../myfaces/repository/GenericRepository.java      |  37 --
 .../superbiz/myfaces/repository/Repository.java    |  42 --
 .../myfaces/repository/UserRepository.java         |  26 --
 .../jpa/AbstractGenericJpaRepository.java          |  97 -----
 .../repository/jpa/EntityManagerProducer.java      |  48 ---
 .../repository/jpa/JpaFeedbackRepository.java      |  29 --
 .../myfaces/repository/jpa/JpaUserRepository.java  |  44 --
 .../myfaces/startup/ExtValLifecycleFactory.java    | 121 ------
 .../myfaces/startup/ModuleStartupObserver.java     |  39 --
 .../myfaces/startup/SampleDataStartupObserver.java |  60 ---
 .../org/superbiz/myfaces/view/FeedbackPage.java    |  77 ----
 .../java/org/superbiz/myfaces/view/InfoPage.java   |  37 --
 .../java/org/superbiz/myfaces/view/MenuBean.java   |  59 ---
 .../superbiz/myfaces/view/RegistrationPage.java    | 101 -----
 .../java/org/superbiz/myfaces/view/UserHolder.java |  55 ---
 .../org/superbiz/myfaces/view/config/Pages.java    |  66 ---
 .../view/security/LoginAccessDecisionVoter.java    |  50 ---
 .../org/superbiz/myfaces/view/util/InfoBean.java   | 128 ------
 .../src/main/resources/META-INF/persistence.xml    |  46 --
 ...ns.cdi.core.api.projectstage.ProjectStageHolder |  18 -
 .../org/superbiz/myfaces/i18n/messages.properties  |  60 ---
 .../src/main/webapp/WEB-INF/beans.xml              |  24 --
 .../src/main/webapp/WEB-INF/faces-config.xml       |  41 --
 .../src/main/webapp/WEB-INF/web.xml                |  40 --
 .../src/main/webapp/layout/main-template.xhtml     | 143 ------
 .../src/main/webapp/layout/menu.xhtml              |  32 --
 .../src/main/webapp/pages/about.xhtml              |  56 ---
 .../src/main/webapp/pages/index.xhtml              |  68 ---
 .../src/main/webapp/pages/login.xhtml              |  48 ---
 .../src/main/webapp/pages/registration.xhtml       |  57 ---
 .../main/webapp/pages/secure/feedbackList.xhtml    |  65 ---
 .../src/main/webapp/resources/images/codi_logo.png | Bin 23571 -> 0 bytes
 .../main/webapp/resources/images/myfaces_logo.jpg  | Bin 11720 -> 0 bytes
 .../resources/images/slices/code_section.png       | Bin 1390 -> 0 bytes
 .../main/webapp/resources/images/slices/footer.png | Bin 387 -> 0 bytes
 .../src/main/webapp/resources/images/slices/h2.png | Bin 1515 -> 0 bytes
 .../resources/images/slices/left_menu_bottom.png   | Bin 1475 -> 0 bytes
 .../resources/images/slices/left_menu_expand.gif   | Bin 163 -> 0 bytes
 .../images/slices/left_menu_expand_hover.gif       | Bin 169 -> 0 bytes
 .../images/slices/left_menu_expand_selected.gif    | Bin 170 -> 0 bytes
 .../resources/images/slices/left_menu_option.gif   | Bin 85 -> 0 bytes
 .../images/slices/left_menu_option_hover.gif       | Bin 104 -> 0 bytes
 .../resources/images/slices/left_menu_top.png      | Bin 17394 -> 0 bytes
 .../images/slices/logo_banner_container.png        | Bin 1346 -> 0 bytes
 .../resources/images/slices/main_space_list.gif    | Bin 84 -> 0 bytes
 .../webapp/resources/images/slices/table_head.png  | Bin 1393 -> 0 bytes
 .../resources/images/slices/table_head_dark.png    | Bin 1401 -> 0 bytes
 .../webapp/resources/images/slices/top_menu.png    | Bin 1426 -> 0 bytes
 .../resources/images/slices/top_menu_hover.png     | Bin 284 -> 0 bytes
 .../webapp/resources/images/slices/transparent.gif | Bin 53 -> 0 bytes
 .../src/main/webapp/resources/styles/base.css      | 192 ---------
 .../src/main/webapp/resources/styles/theme.css     | 480 ---------------------
 examples/pom.xml                                   |   1 -
 77 files changed, 3735 deletions(-)

diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/pom.xml b/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/pom.xml
deleted file mode 100644
index 71760876de..0000000000
--- a/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <artifactId>arquillian-tomee-tests</artifactId>
-    <groupId>org.apache.tomee</groupId>
-    <version>9.0.0-M8-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>arquillian-tomee-codi-tests</artifactId>
-  <name>TomEE :: Arquillian Adaptors Parent :: Tests :: CODI</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
-      <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
-      <version>1.0.6</version>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/src/test/java/org/apache/openejb/arquillian/tests/myfaces/extcdi/start/MyFacesExtCdiDeploymentTest.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/src/test/java/org/apache/openejb/arquillian/tests/myfaces/extcdi/start/MyFacesExtCdiDeploymentTest.java
deleted file mode 100644
index 225c81f745..0000000000
--- a/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/src/test/java/org/apache/openejb/arquillian/tests/myfaces/extcdi/start/MyFacesExtCdiDeploymentTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * 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.openejb.arquillian.tests.myfaces.extcdi.start;
-
-import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
-import org.apache.myfaces.extensions.cdi.jsf.impl.projectstage.JsfProjectStageProducer;
-import org.apache.ziplock.JarLocation;
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.junit.Arquillian;
-import org.jboss.shrinkwrap.api.ArchivePaths;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.jboss.shrinkwrap.descriptor.api.Descriptors;
-import org.jboss.shrinkwrap.descriptor.api.webapp30.WebAppDescriptor;
-import org.jboss.shrinkwrap.descriptor.api.webcommon30.WebAppVersionType;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import jakarta.enterprise.event.Observes;
-import jakarta.enterprise.inject.spi.Extension;
-import jakarta.enterprise.inject.spi.ProcessAnnotatedType;
-import jakarta.inject.Inject;
-
-import static org.junit.Assert.assertEquals;
-
-@RunWith(Arquillian.class)
-public class MyFacesExtCdiDeploymentTest {
-
-    @Inject
-    private ProjectStage projectStage;
-
-    @Deployment
-    public static WebArchive getArchive() {
-        final WebAppDescriptor descriptor = Descriptors.create(WebAppDescriptor.class).version(WebAppVersionType._3_0);
-        // web.xml params is not supported by default
-        // descriptor.contextParam(ProjectStage.PROJECT_STAGE_PARAM_NAME, ProjectStage.SystemTest.name());
-
-        return ShrinkWrap.create(WebArchive.class, "MyFacesExtCdiDeploymentTest.war")
-                .addAsLibraries(JarLocation.jarLocation(JsfProjectStageProducer.class)) // codi
-                .setWebXML(new StringAsset(descriptor.exportAsString()))
-                .addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
-    }
-
-    @Test
-    public void testProjectStage() throws Exception {
-        assertEquals(ProjectStage.Production, projectStage);
-    }
-}
-
diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/src/test/resources/arquillian.xml b/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/src/test/resources/arquillian.xml
deleted file mode 100644
index 2515be522a..0000000000
--- a/arquillian/arquillian-tomee-tests/arquillian-tomee-codi-tests/src/test/resources/arquillian.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
-
-    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.
--->
-<arquillian xmlns="http://jboss.org/schema/arquillian"
-            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-            xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
-  <container qualifier="tomee-embedded" default="true">
-    <configuration>
-      <property name="httpPort">-1</property>
-      <property name="stopPort">-1</property>
-      <property name="dir">target/apache-tomee-remote</property>
-      <property name="appWorkingDir">target/arquillian-test-working-dir</property>
-      <property name="properties">
-        My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        openejb.classloader.forced-load=org.apache.openejb.arquillian.tests
-      </property>
-    </configuration>
-  </container>
-  <container qualifier="tomee-remote">
-    <configuration>
-      <property name="httpPort">-1</property>
-      <property name="ajpPort">-1</property>
-      <property name="stopPort">-1</property>
-      <property name="dir">target/apache-tomee-remote</property>
-      <property name="appWorkingDir">target/arquillian-test-working-dir</property>
-      <property name="simpleLog">true</property>
-      <property name="properties">
-        My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        openejb.classloader.forced-load=org.apache.openejb.arquillian.tests.
-      </property>
-    </configuration>
-  </container>
-  <container qualifier="tomee-remote-secpol">
-    <configuration>
-      <property name="httpPort">-1</property>
-      <property name="ajpPort">-1</property>
-      <property name="stopPort">-1</property>
-      <property name="dir">target/apache-tomee-remote</property>
-      <property name="appWorkingDir">target/arquillian-test-working-dir</property>
-      <property name="simpleLog">true</property>
-      <property name="properties">
-        My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        openejb.classloader.forced-load=org.apache.openejb.arquillian.tests.
-        jakarta.security.jacc.policy.provider=sun.security.provider.PolicyFile
-      </property>
-    </configuration>
-  </container>
-  <container qualifier="tomee-webapp">
-    <configuration>
-      <property name="httpPort">-1</property>
-      <property name="ajpPort">-1</property>
-      <property name="stopPort">-1</property>
-      <property name="dir">target/apache-tomee-remote</property>
-      <property name="appWorkingDir">target/arquillian-test-working-dir</property>
-      <property name="properties">
-        My\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        My\ Unmanaged\ DataSource.JdbcUrl = jdbc:hsqldb:mem:hsqldb
-        openejb.classloader.forced-load=org.apache.openejb.arquillian.tests.
-      </property>
-    </configuration>
-  </container>
-</arquillian>
\ No newline at end of file
diff --git a/arquillian/arquillian-tomee-tests/pom.xml b/arquillian/arquillian-tomee-tests/pom.xml
index 1f79ebd1d3..dfe05bc6a5 100644
--- a/arquillian/arquillian-tomee-tests/pom.xml
+++ b/arquillian/arquillian-tomee-tests/pom.xml
@@ -29,7 +29,6 @@
     <module>arquillian-tomee-jaxrs-tests</module>
     <module>arquillian-tomee-jaxws-tests</module>
     <module>arquillian-tomee-jms-tests</module>
-    <module>arquillian-tomee-codi-tests</module>
     <module>arquillian-tomee-config-tests</module>
   </modules>
 
diff --git a/examples/myfaces-codi-demo/README.adoc b/examples/myfaces-codi-demo/README.adoc
deleted file mode 100644
index 4cfe596371..0000000000
--- a/examples/myfaces-codi-demo/README.adoc
+++ /dev/null
@@ -1,77 +0,0 @@
-:index-group: Unrevised
-:jbake-type: page
-:jbake-status: status=published
-= MyFaces CODI Demo
-
-=== Steps to run the example
-
-[discrete]
-==== Build and start the demo:
-
-[source,bash]
-----
-mvn clean package tomee:run
-----
-
-
-==== Open:
-[source,java]
-----
-http://localhost:8080/myfaces-codi-demo-8.0.1-SNAPSHOT/
-----
-
-This example shows how to improve JSF2/CDI/BV/JPA applications with
-features provided by Apache MyFaces CODI and ExtVal.
-
-[discrete]
-==== Intro of MyFaces CODI and ExtVal
-
-The Apache MyFaces Extensions CDI project (aka CODI) hosts portable
-extensions for Contexts and Dependency Injection (CDI - JSR 299). CODI
-is a toolbox for your CDI application. Like CDI itself CODI is focused
-on type-safety. It is a modularized and extensible framework. So it’s
-easy to choose the needed parts to facilitate the daily work in your
-project.
-
-MyFaces Extensions Validator (aka ExtVal) is a JSF centric validation
-framework which is compatible with JSF 1.x and JSF 2.x. This example
-shows how it improves the default integration of Bean-Validation
-(JSR-303) with JSF2 as well as meta-data based cross-field validation.
-
-Illustrated Features
-
-* Apache MyFaces CODI
-
-* Type-safe view-config
-
-* Type-safe (custom) view-meta-data
-
-* Type-safe navigation
-
-* Type-safe (specialized) config
-
-* Type-safe custom project-stage
-
-* @WindowScoped
-
-* Controlling CODI scopes with WindowContext
-
-* @ViewAccessScoped
-
-* Manual conversation handling
-
-* Secured pages (AccessDecisionVoter)
-
-* @Transactional
-
-* I18n (fluent API)
-
-* Dependency-Injection for JSR303 (BV) constraint-validators
-
-* Dependency-Injection for JSF phase-listeners
-
-* Apache MyFaces ExtVal
-
-* Cross-Field validation (@Equals)
-
-* Type-safe group-validation (@BeanValidation) for JSF action-methods
diff --git a/examples/myfaces-codi-demo/README_es.adoc b/examples/myfaces-codi-demo/README_es.adoc
deleted file mode 100644
index 291fe875be..0000000000
--- a/examples/myfaces-codi-demo/README_es.adoc
+++ /dev/null
@@ -1,79 +0,0 @@
-:index-group: Unrevised
-:jbake-type: page
-:jbake-status: status=published
-= MyFaces CODI Demo
-
-
-=== Pasos para ejecutar el ejemplo
-
-[discrete]
-==== Construir y arrancar la demo:
-
-[source,bash]
-----
-mvn clean package tomee:run
-----
-
-
-==== Abrir:
-[source,java]
-----
-http://localhost:8080/myfaces-codi-demo-8.0.1-SNAPSHOT/
-----
-
-
-Este ejemplo muestra como mejorar aplicaciones JSF2/CDI/BV/JPA usando
-la funcionalidad proporcionada por  Apache MyFaces CODI y ExtVal.
-
-[discrete]
-==== Introducción a MyFaces CODI y ExtVal
-
-El proyecto CDI de Extensiones de Apache MyFaces (también conocido como CODI) 
-aloja extensiones portábles para Contextos e Inyección de Dependencias (CDI - JSR 299). CODI
-es una caja de herramientas para su aplicación CDI. Al igual que CDI, CODI está enfocado
-en seguridad de tipo (type-safety). Es un marco modularizado y extensible. Entonces es
-Fácil elegir las piezas necesarias para facilitar el trabajo diario en su proyecto.
-
-MyFaces Extensions Validator (también conocido como ExtVal) es un framework centrado 
-en validación JSF que es compatible con JSF 1.xy JSF 2.x. Este ejemplo
-muestra cómo mejorar la integración predeterminada de Bean-Validation
-(JSR-303) con JSF2 y validación de campo cruzado (cross-field) basada en metadatos.
-
-
-Illustrated Features
-
-* Apache MyFaces CODI
-
-* Type-safe view-config
-
-* Type-safe (custom) view-meta-data
-
-* Type-safe navigation
-
-* Type-safe (specialized) config
-
-* Type-safe custom project-stage
-
-* @WindowScoped
-
-* Controlling CODI scopes with WindowContext
-
-* @ViewAccessScoped
-
-* Manual conversation handling
-
-* Secured pages (AccessDecisionVoter)
-
-* @Transactional
-
-* I18n (fluent API)
-
-* Dependency-Injection for JSR303 (BV) constraint-validators
-
-* Dependency-Injection for JSF phase-listeners
-
-* Apache MyFaces ExtVal
-
-* Cross-Field validation (@Equals)
-
-* Type-safe group-validation (@BeanValidation) for JSF action-methods
diff --git a/examples/myfaces-codi-demo/README_pt.adoc b/examples/myfaces-codi-demo/README_pt.adoc
deleted file mode 100644
index 288927252c..0000000000
--- a/examples/myfaces-codi-demo/README_pt.adoc
+++ /dev/null
@@ -1,77 +0,0 @@
-:index-group: Unrevised
-:jbake-type: page
-:jbake-status: status=published
-= MyFaces CODI Demo
-
-
-== Passos para executar o exemplo
-
-[discrete]
-== Crie e inicie a demonstração:
-
-[source,bash]
-----
-mvn clean package tomee:run
-----
-
-==== Abrir:
-[source,java]
-----
-http://localhost:8080/myfaces-codi-demo-8.0.5-SNAPSHOT/
-----
-
-Este exemplo mostra como melhorar aplicativos JSF2/CDI/BV/JPA usando
-a funcionalidade fornecida pelo Apache MyFaces CODI e ExtVal.
-
-[discrete]
-=== Introdução ao MyFaces CODI e ExtVal
-
-O projeto CDI do Apache MyFaces Extensions (também conhecido como CODI)
-abriga extensões portáteis para contextos e injeção de dependência (CDI - JSR 299). CODI
-É uma caixa de ferramentas para o seu aplicativo CDI. Como o CDI, o CODI está focado
-em segurança de tipo. É uma estrutura modularizada e extensível. Então é
-fácil de escolher as peças necessárias para facilitar o trabalho diário em seu projeto.
-
-O MyFaces Extensions Validator (também conhecido como ExtVal) é uma estrutura focada
-na validação JSF compatível com JSF 1.xe JSF 2.x. Este exemplo
-mostra como melhorar a integração padrão do Bean-Validation
-(JSR-303) com JSF2 e validação de campos cruzados com base em metadados.
-
-
-Recursos ilustrados
-
-* Apache MyFaces CODI
-
-* Type-safe view-config
-
-* Type-safe (custom) view-meta-data
-
-* Type-safe navigation
-
-* Type-safe (specialized) config
-
-* Type-safe custom project-stage
-
-* @WindowScoped
-
-* Controlling CODI scopes with WindowContext
-
-* @ViewAccessScoped
-
-* Manual conversation handling
-
-* Secured pages (AccessDecisionVoter)
-
-* @Transactional
-
-* I18n (fluent API)
-
-* Dependency-Injection for JSR303 (BV) constraint-validators
-
-* Dependency-Injection for JSF phase-listeners
-
-* Apache MyFaces ExtVal
-
-* Cross-Field validation (@Equals)
-
-* Type-safe group-validation (@BeanValidation) for JSF action-methods
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/pom.xml b/examples/myfaces-codi-demo/pom.xml
deleted file mode 100644
index 4d7551a164..0000000000
--- a/examples/myfaces-codi-demo/pom.xml
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0"?>
-<!-- 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. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.superbiz</groupId>
-  <artifactId>myfaces-codi-demo</artifactId>
-  <name>TomEE :: Examples :: JSF2/CDI/BV/JPA/CODI</name>
-  <version>9.0.0-M8-SNAPSHOT</version>
-  <packaging>war</packaging>
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <myfaces2.version>2.2.4</myfaces2.version>
-    <myfaces.codi.version>1.0.5</myfaces.codi.version>
-    <extval.version>2.0.8</extval.version>
-  </properties>
-  <build>
-    <defaultGoal>install</defaultGoal>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.5.1</version>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <version>3.1.0</version>
-        <configuration>
-          <failOnMissingWebXml>false</failOnMissingWebXml>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.tomee.maven</groupId>
-        <artifactId>tomee-maven-plugin</artifactId>
-        <version>9.0.0-M8-SNAPSHOT</version>
-      </plugin>
-      
-    </plugins>
-  </build>
-  <repositories>
-    <repository>
-      <id>prime-repo</id>
-      <name>Prime Technology Maven Repository</name>
-      <url>https://repository.primefaces.org/</url>
-      <layout>default</layout>
-    </repository>
-    <repository>
-      <id>apache-m2-snapshot</id>
-      <name>Apache Snapshot Repository</name>
-      <url>https://repository.apache.org/content/groups/snapshots</url>
-    </repository>
-  </repositories>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.tomee</groupId>
-      <artifactId>jakartaee-api</artifactId>
-      <version>9.1-M2-SNAPSHOT</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.myfaces.extensions.cdi.bundles</groupId>
-      <artifactId>myfaces-extcdi-bundle-jsf20</artifactId>
-      <version>${myfaces.codi.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.myfaces.extensions.validator</groupId>
-      <artifactId>myfaces-extval-core</artifactId>
-      <version>${extval.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.myfaces.extensions.validator.validation-modules</groupId>
-      <artifactId>myfaces-extval-property-validation</artifactId>
-      <version>${extval.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>jakarta.persistence</groupId>
-          <artifactId>persistence-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.myfaces.extensions.validator.validation-modules</groupId>
-      <artifactId>myfaces-extval-bean-validation</artifactId>
-      <version>${extval.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>jakarta.validation</groupId>
-          <artifactId>validation-api</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.myfaces.core</groupId>
-      <artifactId>myfaces-api</artifactId>
-      <version>${myfaces2.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <!-- 3rd party libs -->
-    <dependency>
-      <groupId>org.primefaces</groupId>
-      <artifactId>primefaces</artifactId>
-      <version>2.2</version>
-    </dependency>
-  </dependencies>
-  <!--
-  This section allows you to configure where to publish libraries for sharing.
-  It is not required and may be deleted.  For more information see:
-  http://maven.apache.org/plugins/maven-deploy-plugin/
-  -->
-  <distributionManagement>
-    <repository>
-      <id>localhost</id>
-      <url>file://${basedir}/target/repo/</url>
-    </repository>
-    <snapshotRepository>
-      <id>localhost</id>
-      <url>file://${basedir}/target/snapshot-repo/</url>
-    </snapshotRepository>
-  </distributionManagement>
-</project>
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/CustomJsfModuleConfig.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/CustomJsfModuleConfig.java
deleted file mode 100644
index 5f3d310207..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/CustomJsfModuleConfig.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.superbiz.myfaces;
-
-import org.apache.myfaces.extensions.cdi.jsf.api.config.JsfModuleConfig;
-
-import jakarta.enterprise.inject.Specializes;
-
-@Specializes
-public class CustomJsfModuleConfig extends JsfModuleConfig {
-
-    private static final long serialVersionUID = 1682809983274206270L;
-
-    @Override
-    public boolean isInvalidValueAwareMessageInterpolatorEnabled() {
-        return false;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/CustomProjectStage.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/CustomProjectStage.java
deleted file mode 100644
index 485f79392a..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/CustomProjectStage.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.superbiz.myfaces;
-
-import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
-import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStageHolder;
-
-public class CustomProjectStage implements ProjectStageHolder {
-
-    public static final class Debugging extends ProjectStage {
-
-        private static final long serialVersionUID = -8626602281649294170L;
-    }
-
-    public static final Debugging Debugging = new Debugging();
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/DebugPhaseListener.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/DebugPhaseListener.java
deleted file mode 100644
index cdf22a9fa2..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/DebugPhaseListener.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.superbiz.myfaces;
-
-import org.apache.myfaces.extensions.cdi.core.api.Advanced;
-import org.apache.myfaces.extensions.cdi.core.api.activation.ProjectStageActivated;
-import org.apache.myfaces.extensions.cdi.core.api.logging.Logger;
-import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
-import org.apache.myfaces.extensions.cdi.jsf.api.listener.phase.JsfPhaseListener;
-
-import jakarta.faces.event.PhaseEvent;
-import jakarta.faces.event.PhaseId;
-import jakarta.faces.event.PhaseListener;
-import jakarta.inject.Inject;
-
-@ProjectStageActivated({ProjectStage.Development.class, CustomProjectStage.Debugging.class})
-
-@Advanced
-@JsfPhaseListener
-public class DebugPhaseListener implements PhaseListener {
-
-    private static final long serialVersionUID = 5899542118538949019L;
-
-    @Inject
-    private Logger logger;
-
-    public void beforePhase(PhaseEvent phaseEvent) {
-        this.logger.info("before " + phaseEvent.getPhaseId());
-    }
-
-    public void afterPhase(PhaseEvent phaseEvent) {
-        this.logger.info("after " + phaseEvent.getPhaseId());
-    }
-
-    public PhaseId getPhaseId() {
-        return PhaseId.ANY_PHASE;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/AbstractDomainObject.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/AbstractDomainObject.java
deleted file mode 100644
index ae87f35f2b..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/AbstractDomainObject.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain;
-
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.Id;
-import jakarta.persistence.MappedSuperclass;
-import jakarta.persistence.Version;
-import java.io.Serializable;
-
-@MappedSuperclass
-public abstract class AbstractDomainObject implements Serializable {
-
-    @Id
-    @GeneratedValue
-    private Long id;
-
-    @Version
-    private Long version;
-
-    public boolean isTransient() {
-        return this.version == null;
-    }
-
-    public Long getId() {
-        return id;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/Comment.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/Comment.java
deleted file mode 100644
index 5c5f2e5875..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/Comment.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain;
-
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.ManyToOne;
-
-@Entity
-public class Comment extends AbstractDomainObject {
-
-    private static final long serialVersionUID = -5718296682587279635L;
-
-    @Column(length = 2048)
-    private String description;
-
-    @ManyToOne(optional = false)
-    private Feedback feedback;
-
-    void setFeedback(Feedback feedback) {
-        this.feedback = feedback;
-    }
-
-    /*
-     * generated
-     */
-
-    public Comment() {
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/Feedback.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/Feedback.java
deleted file mode 100644
index 79d163caf6..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/Feedback.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain;
-
-import jakarta.persistence.CascadeType;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.OneToMany;
-import java.util.ArrayList;
-import java.util.List;
-
-@Entity
-public class Feedback extends AbstractDomainObject {
-
-    private static final long serialVersionUID = -431924785266663236L;
-
-    @Column(nullable = false, length = 32)
-    private String topic;
-
-    @Column(length = 128)
-    private String description;
-
-    @OneToMany(mappedBy = "feedback", cascade = CascadeType.ALL)
-    private List<Comment> comments = new ArrayList<Comment>();
-
-    public void addComment(Comment comment) {
-        comment.setFeedback(this);
-        this.comments.add(comment);
-    }
-
-    /*
-     * generated
-     */
-
-    public List<Comment> getComments() {
-        return comments;
-    }
-
-    public String getTopic() {
-        return topic;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setTopic(String topic) {
-        this.topic = topic;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/User.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/User.java
deleted file mode 100644
index 9f6787ee10..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/User.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain;
-
-import org.superbiz.myfaces.domain.validation.DifferentName;
-import org.superbiz.myfaces.domain.validation.Name;
-import org.superbiz.myfaces.domain.validation.Partial;
-import org.superbiz.myfaces.domain.validation.UniqueUserName;
-import org.superbiz.myfaces.domain.validation.UserName;
-
-import jakarta.enterprise.inject.Typed;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.NamedQuery;
-import jakarta.persistence.Table;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-
-@Table(name = "T_User")
-@Entity
-@NamedQuery(name = "findUserByName", query = "select u from User u where u.userName = :currentUser")
-@DifferentName(groups = Partial.class)
-@Typed()
-public class User extends AbstractDomainObject {
-
-    private static final long serialVersionUID = 3810638653455000233L;
-
-    @UserName(groups = UniqueUserName.class)
-    @Column(nullable = false, length = 9, unique = true)
-    private String userName;
-
-    @Size(min = 2, max = 20, message = "invalid first name")
-    @NotNull
-    @Column
-    private String firstName;
-
-    @Column
-    @Name(message = "invalid last name")
-    private String lastName;
-
-    @Column
-    private String password;
-
-    /*
-     * generated
-     */
-
-    public User() {
-    }
-
-    public User(String userName, String firstName, String lastName) {
-        this.userName = userName;
-        this.firstName = firstName;
-        this.lastName = lastName;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getFirstName() {
-        return firstName;
-    }
-
-    public void setFirstName(String firstName) {
-        this.firstName = firstName;
-    }
-
-    public String getLastName() {
-        return lastName;
-    }
-
-    public void setLastName(String lastName) {
-        this.lastName = lastName;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/DifferentName.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/DifferentName.java
deleted file mode 100644
index bda8113f10..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/DifferentName.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-import jakarta.validation.Constraint;
-import jakarta.validation.Payload;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-@Constraint(validatedBy = DifferentNameValidator.class)
-@Target(TYPE)
-@Retention(RUNTIME)
-public @interface DifferentName {
-
-    String message() default "invalid name";
-
-    Class<?>[] groups() default {};
-
-    Class<? extends Payload>[] payload() default {};
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/DifferentNameValidator.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/DifferentNameValidator.java
deleted file mode 100644
index 9bfb40bdee..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/DifferentNameValidator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-import org.superbiz.myfaces.domain.User;
-
-import jakarta.validation.ConstraintValidator;
-import jakarta.validation.ConstraintValidatorContext;
-
-public class DifferentNameValidator implements ConstraintValidator<DifferentName, User> {
-
-    public void initialize(final DifferentName differentName) {
-    }
-
-    public boolean isValid(final User person, final ConstraintValidatorContext constraintValidatorContext) {
-        return person == null || !(person.getFirstName() != null && person.getFirstName().equals(person.getLastName()));
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Full.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Full.java
deleted file mode 100644
index f8eb8a17d8..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Full.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-import jakarta.validation.GroupSequence;
-import jakarta.validation.groups.Default;
-
-@GroupSequence({Default.class, UniqueUserName.class})
-public interface Full {
-
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Name.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Name.java
deleted file mode 100644
index 8c70158957..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Name.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-import jakarta.validation.Constraint;
-import jakarta.validation.Payload;
-import jakarta.validation.ReportAsSingleViolation;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-@Size(min = 2, max = 20)
-@NotNull
-
-@Constraint(validatedBy = {})
-@ReportAsSingleViolation
-
-@Target({METHOD, FIELD, ANNOTATION_TYPE})
-@Retention(RUNTIME)
-public @interface Name {
-
-    public abstract String message() default "invalid name";
-
-    public abstract Class<?>[] groups() default {};
-
-    public abstract Class<? extends Payload>[] payload() default {};
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Partial.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Partial.java
deleted file mode 100644
index d2f54278b5..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/Partial.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-public interface Partial {
-
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UniqueUserName.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UniqueUserName.java
deleted file mode 100644
index 955c58814d..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UniqueUserName.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-public interface UniqueUserName {
-
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UniqueUserNameValidator.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UniqueUserNameValidator.java
deleted file mode 100644
index bb1a8d74f9..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UniqueUserNameValidator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-import org.apache.myfaces.extensions.cdi.core.api.Advanced;
-import org.superbiz.myfaces.repository.UserRepository;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.inject.Inject;
-import jakarta.validation.ConstraintValidator;
-import jakarta.validation.ConstraintValidatorContext;
-
-@Advanced
-@ApplicationScoped
-public class UniqueUserNameValidator implements ConstraintValidator<UserName, String> {
-
-    @Inject
-    private UserRepository userRepository;
-
-    public void initialize(UserName differentName) {
-    }
-
-    public boolean isValid(String userName, ConstraintValidatorContext constraintValidatorContext) {
-        return this.userRepository.loadUser(userName) == null;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UserName.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UserName.java
deleted file mode 100644
index 30e83e9c7f..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/domain/validation/UserName.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.superbiz.myfaces.domain.validation;
-
-import jakarta.validation.Constraint;
-import jakarta.validation.Payload;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-import jakarta.validation.groups.Default;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-@NotNull(groups = Default.class)
-@Size(min = 2, max = 9, message = "invalid name", groups = Default.class)
-
-@Constraint(validatedBy = UniqueUserNameValidator.class)
-@Target(FIELD)
-@Retention(RUNTIME)
-public @interface UserName {
-
-    String message() default "user-name exists already";
-
-    Class<?>[] groups() default {};
-
-    Class<? extends Payload>[] payload() default {};
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/FeedbackRepository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/FeedbackRepository.java
deleted file mode 100644
index 6359bf5f59..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/FeedbackRepository.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository;
-
-import org.superbiz.myfaces.domain.Feedback;
-
-public interface FeedbackRepository extends GenericRepository<Feedback> {
-
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/GenericRepository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/GenericRepository.java
deleted file mode 100644
index 230e74c2bb..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/GenericRepository.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository;
-
-import org.superbiz.myfaces.domain.AbstractDomainObject;
-
-import java.io.Serializable;
-import java.util.List;
-
-public interface GenericRepository<T extends AbstractDomainObject> extends Serializable {
-
-    void save(T entity);
-
-    void remove(T entity);
-
-    List<T> loadAll();
-
-    T loadById(Long id);
-
-    T createNewEntity();
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/Repository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/Repository.java
deleted file mode 100644
index 177da344c8..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/Repository.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository;
-
-import org.apache.myfaces.extensions.cdi.jpa.api.Transactional;
-
-import jakarta.enterprise.context.RequestScoped;
-import jakarta.enterprise.inject.Stereotype;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-@Stereotype
-
-@Target({TYPE})
-@Retention(RUNTIME)
-@Documented
-
-@RequestScoped
-@Transactional
-public @interface Repository {
-
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/UserRepository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/UserRepository.java
deleted file mode 100644
index 6489e7666f..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/UserRepository.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository;
-
-import org.superbiz.myfaces.domain.User;
-
-public interface UserRepository extends GenericRepository<User> {
-
-    User loadUser(String userName);
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/AbstractGenericJpaRepository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/AbstractGenericJpaRepository.java
deleted file mode 100644
index a6a2cde50b..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/AbstractGenericJpaRepository.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository.jpa;
-
-import org.superbiz.myfaces.domain.AbstractDomainObject;
-import org.superbiz.myfaces.repository.GenericRepository;
-
-import jakarta.inject.Inject;
-import jakarta.persistence.EntityManager;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.List;
-
-/**
- * Abstract repository class which provides default implementations for common repository methods.
- */
-public abstract class AbstractGenericJpaRepository<T extends AbstractDomainObject> implements GenericRepository<T> {
-
-    protected final Class<? extends AbstractDomainObject> entityClass;
-
-    @Inject
-    protected EntityManager entityManager;
-
-    public AbstractGenericJpaRepository() {
-        Class currentClass = getClass();
-
-        if (currentClass.getName().contains("$$")) { //we are in a proxy
-            currentClass = currentClass.getSuperclass();
-        }
-
-        for (Type interfaceClass : currentClass.getGenericInterfaces()) {
-            for (Type genericInterfaceClass : ((Class) interfaceClass).getGenericInterfaces()) {
-                if (genericInterfaceClass instanceof ParameterizedType &&
-                        GenericRepository.class.isAssignableFrom((Class) ((ParameterizedType) genericInterfaceClass).getRawType())) {
-                    for (Type parameterizedType : ((ParameterizedType) genericInterfaceClass).getActualTypeArguments()) {
-                        if (AbstractDomainObject.class.isAssignableFrom((Class) parameterizedType)) {
-                            this.entityClass = (Class<? extends AbstractDomainObject>) parameterizedType;
-                            return;
-                        }
-                    }
-                }
-            }
-        }
-
-        throw new IllegalStateException("Entity type of " + currentClass.getName() + " not detected!");
-    }
-
-    @Override
-    public T createNewEntity() {
-        try {
-            return (T) this.entityClass.newInstance();
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public void save(T entity) {
-        if (entity.isTransient()) {
-            this.entityManager.persist(entity);
-        } else {
-            this.entityManager.merge(entity);
-        }
-    }
-
-    public void remove(T entity) {
-        if (entity.isTransient()) {
-            throw new IllegalStateException("entity is not persistent");
-        }
-
-        this.entityManager.remove(loadById(entity.getId()));
-    }
-
-    public List<T> loadAll() {
-        return (List<T>) this.entityManager.createQuery("select entity from " + this.entityClass.getSimpleName() + " entity")
-                .getResultList();
-    }
-
-    public T loadById(Long id) {
-        return (T) this.entityManager.find(this.entityClass, id);
-    }
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/EntityManagerProducer.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/EntityManagerProducer.java
deleted file mode 100644
index 8038359198..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/EntityManagerProducer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository.jpa;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.enterprise.context.RequestScoped;
-import jakarta.enterprise.inject.Default;
-import jakarta.enterprise.inject.Disposes;
-import jakarta.enterprise.inject.Produces;
-import jakarta.persistence.EntityManager;
-import jakarta.persistence.EntityManagerFactory;
-import jakarta.persistence.PersistenceUnit;
-
-@ApplicationScoped
-public class EntityManagerProducer {
-
-    @PersistenceUnit(unitName = "demoApplicationPU")
-    private EntityManagerFactory entityManagerFactory;
-
-    @Produces
-    @Default
-    @RequestScoped
-    public EntityManager create() {
-        return this.entityManagerFactory.createEntityManager();
-    }
-
-    public void dispose(@Disposes @Default EntityManager entityManager) {
-        if (entityManager.isOpen()) {
-            entityManager.close();
-        }
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/JpaFeedbackRepository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/JpaFeedbackRepository.java
deleted file mode 100644
index 673e4cefe1..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/JpaFeedbackRepository.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository.jpa;
-
-import org.superbiz.myfaces.domain.Feedback;
-import org.superbiz.myfaces.repository.FeedbackRepository;
-import org.superbiz.myfaces.repository.Repository;
-
-@Repository
-public class JpaFeedbackRepository extends AbstractGenericJpaRepository<Feedback> implements FeedbackRepository {
-
-    private static final long serialVersionUID = -4140472572607337575L;
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/JpaUserRepository.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/JpaUserRepository.java
deleted file mode 100644
index fa08163d19..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/repository/jpa/JpaUserRepository.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.superbiz.myfaces.repository.jpa;
-
-import org.superbiz.myfaces.domain.User;
-import org.superbiz.myfaces.repository.Repository;
-import org.superbiz.myfaces.repository.UserRepository;
-
-import jakarta.persistence.Query;
-import java.util.List;
-
-@Repository
-public class JpaUserRepository extends AbstractGenericJpaRepository<User> implements UserRepository {
-
-    private static final long serialVersionUID = 672568789774892077L;
-
-    public User loadUser(String userName) {
-        Query query = this.entityManager.createNamedQuery("findUserByName");
-        query.setParameter("currentUser", userName);
-
-        //just for the demo:
-        List result = query.getResultList();
-        if (result != null && result.size() == 1) {
-            return (User) result.iterator().next();
-        }
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/ExtValLifecycleFactory.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/ExtValLifecycleFactory.java
deleted file mode 100644
index 4dbf4196b6..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/ExtValLifecycleFactory.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * 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.superbiz.myfaces.startup;
-
-import org.apache.myfaces.extensions.validator.core.DefaultExtValCoreConfiguration;
-import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
-import org.apache.myfaces.extensions.validator.core.proxy.DefaultProxyHelper;
-import org.apache.myfaces.extensions.validator.core.proxy.ProxyHelper;
-import org.apache.myfaces.extensions.validator.core.startup.AbstractStartupListener;
-
-import jakarta.faces.FacesException;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.event.PhaseListener;
-import jakarta.faces.lifecycle.Lifecycle;
-import jakarta.faces.lifecycle.LifecycleFactory;
-import java.util.Iterator;
-
-//TODO remove it after upgrading to ExtVal r8+
-public class ExtValLifecycleFactory extends LifecycleFactory {
-    private final LifecycleFactory wrapped;
-
-    public ExtValLifecycleFactory(LifecycleFactory wrapped) {
-        this.wrapped = wrapped;
-    }
-
-    @Override
-    public void addLifecycle(String lifecycleId, Lifecycle lifecycle) {
-        wrapped.addLifecycle(lifecycleId, lifecycle);
-    }
-
-    @Override
-    public Lifecycle getLifecycle(String lifecycleId) {
-        return new LifecycleWrapper(wrapped.getLifecycle(lifecycleId));
-    }
-
-    @Override
-    public Iterator<String> getLifecycleIds() {
-        return wrapped.getLifecycleIds();
-    }
-
-    @Override
-    public LifecycleFactory getWrapped() {
-        return wrapped;
-    }
-
-    private static class LifecycleWrapper extends Lifecycle {
-        private final Lifecycle wrapped;
-        private static boolean firstPhaseListener = true;
-
-        private LifecycleWrapper(Lifecycle wrapped) {
-            this.wrapped = wrapped;
-        }
-
-        @Override
-        public void addPhaseListener(PhaseListener listener) {
-            if (firstPhaseListener) {
-                //forced order independent of any other config
-                firstPhaseListener = false;
-                wrapped.addPhaseListener(new ExtValStartupListener());
-            }
-            wrapped.addPhaseListener(listener);
-        }
-
-        @Override
-        public void execute(FacesContext context) throws FacesException {
-            wrapped.execute(context);
-        }
-
-        @Override
-        public PhaseListener[] getPhaseListeners() {
-            return wrapped.getPhaseListeners();
-        }
-
-        @Override
-        public void removePhaseListener(PhaseListener listener) {
-            wrapped.removePhaseListener(listener);
-        }
-
-        @Override
-        public void render(FacesContext context) throws FacesException {
-            wrapped.render(context);
-        }
-    }
-
-    public static class ExtValStartupListener extends AbstractStartupListener {
-        @Override
-        protected void init() {
-            ExtValCoreConfiguration.use(new DefaultExtValCoreConfiguration() {
-                @Override
-                public ProxyHelper proxyHelper() {
-                    return new DefaultProxyHelper() {
-                        @Override
-                        public boolean isProxiedClass(Class currentClass) {
-                            if (currentClass == null || currentClass.getSuperclass() == null) {
-                                return false;
-                            }
-                            return currentClass.getName().startsWith(currentClass.getSuperclass().getName()) &&
-                                    currentClass.getName().contains("$$");
-                        }
-                    };
-                }
-            }, true);
-        }
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/ModuleStartupObserver.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/ModuleStartupObserver.java
deleted file mode 100644
index e2cef4ef91..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/ModuleStartupObserver.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.superbiz.myfaces.startup;
-
-import jakarta.annotation.PostConstruct;
-import jakarta.ejb.Singleton;
-import jakarta.ejb.Startup;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-@Singleton
-@Startup
-public class ModuleStartupObserver {
-
-    private Logger logger = Logger.getLogger(ModuleStartupObserver.class.getName());
-
-    @PostConstruct
-    public void logStartup() {
-        if (logger.isLoggable(Level.INFO)) {
-            logger.info("starting application module");
-        }
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/SampleDataStartupObserver.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/SampleDataStartupObserver.java
deleted file mode 100644
index 0415e8a2eb..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/startup/SampleDataStartupObserver.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.superbiz.myfaces.startup;
-
-import org.apache.myfaces.extensions.cdi.core.api.activation.ProjectStageActivated;
-import org.apache.myfaces.extensions.cdi.core.api.startup.event.StartupEvent;
-import org.superbiz.myfaces.domain.User;
-import org.superbiz.myfaces.repository.UserRepository;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.enterprise.event.Observes;
-import jakarta.inject.Inject;
-import jakarta.persistence.EntityManager;
-import jakarta.persistence.Query;
-
-import static org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage.Development;
-import static org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage.IntegrationTest;
-
-//e.g. via the std. JSF project-stage or CODI project-stage org.apache.myfaces.extensions.cdi.ProjectStage=Development
-@ProjectStageActivated({Development.class, IntegrationTest.class})
-@ApplicationScoped
-public class SampleDataStartupObserver {
-
-    @Inject
-    private EntityManager entityManager;
-
-    protected void createSampleData(@Observes StartupEvent startupEvent, UserRepository userRepository) {
-        initDB(); //ok since we are in project-stage dev. or integration-test
-
-        User user = userRepository.createNewEntity();
-        user.setUserName("demo");
-        user.setFirstName("Demo");
-        user.setLastName("User");
-        user.setPassword("demo");
-        userRepository.save(user);
-    }
-
-    private void initDB() {
-        entityManager.getTransaction().begin();
-        Query query = entityManager.createNativeQuery("TRUNCATE SCHEMA public AND COMMIT");
-        query.executeUpdate();
-        entityManager.getTransaction().commit();
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/FeedbackPage.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/FeedbackPage.java
deleted file mode 100644
index 2c116a4a1f..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/FeedbackPage.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.superbiz.myfaces.view;
-
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessScoped;
-import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PreRenderView;
-import org.superbiz.myfaces.domain.Feedback;
-import org.superbiz.myfaces.repository.FeedbackRepository;
-
-import jakarta.annotation.PostConstruct;
-import jakarta.inject.Inject;
-import jakarta.inject.Named;
-import java.io.Serializable;
-import java.util.List;
-
-@Named
-@ViewAccessScoped
-//alternative to @PageBean in the view-config:
-//@View(Pages.Secure.FeedbackList.class)
-public class FeedbackPage implements Serializable {
-
-    private static final long serialVersionUID = 744025508253889974L;
-
-    private List<Feedback> feedbackList;
-
-    @Inject
-    private Conversation conversation;
-
-    @Inject
-    private FeedbackRepository feedbackRepository;
-
-    private Feedback feedback;
-
-    @PostConstruct
-    protected void init() {
-        this.feedback = this.feedbackRepository.createNewEntity();
-    }
-
-    @PreRenderView
-    public void reloadFeedbackList() {
-        this.feedbackList = this.feedbackRepository.loadAll();
-    }
-
-    public void save() {
-        this.feedbackRepository.save(this.feedback);
-        this.conversation.close();
-    }
-
-    /*
-     * generated
-     */
-
-    public List<Feedback> getFeedbackList() {
-        return feedbackList;
-    }
-
-    public Feedback getFeedback() {
-        return feedback;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/InfoPage.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/InfoPage.java
deleted file mode 100644
index 6ff3d469aa..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/InfoPage.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.superbiz.myfaces.view;
-
-import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewMetaData;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-@Target({TYPE})
-@Retention(RUNTIME)
-@Documented
-
-@ViewMetaData
-public @interface InfoPage {
-
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/MenuBean.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/MenuBean.java
deleted file mode 100644
index fd14ce3b3e..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/MenuBean.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.superbiz.myfaces.view;
-
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowContext;
-import org.superbiz.myfaces.view.config.Pages;
-
-import jakarta.enterprise.inject.Model;
-import jakarta.inject.Inject;
-
-@Model
-public class MenuBean {
-
-    @Inject
-    private WindowContext windowContext;
-
-    public Class<? extends Pages> home() {
-        //close all conversations of the current window
-        this.windowContext.closeConversations();
-        return Pages.Index.class;
-    }
-
-    public Class<? extends Pages.Secure> feedback() {
-        //close all conversations of the current window
-        this.windowContext.closeConversations();
-        return Pages.Secure.FeedbackList.class;
-    }
-
-    public Class<? extends Pages> about() {
-        this.windowContext.closeConversations();
-        return Pages.About.class;
-    }
-
-    public Class<? extends Pages> login() {
-        this.windowContext.closeConversations();
-        return Pages.Login.class;
-    }
-
-    public Class<? extends Pages> register() {
-        this.windowContext.closeConversations();
-        return Pages.Registration.class;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/RegistrationPage.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/RegistrationPage.java
deleted file mode 100644
index 7c2ebbfede..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/RegistrationPage.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.superbiz.myfaces.view;
-
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.Conversation;
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.ViewAccessScoped;
-import org.apache.myfaces.extensions.cdi.jsf.api.Jsf;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
-import org.apache.myfaces.extensions.validator.beanval.annotation.BeanValidation;
-import org.apache.myfaces.extensions.validator.crossval.annotation.Equals;
-import org.superbiz.myfaces.domain.User;
-import org.superbiz.myfaces.domain.validation.Full;
-import org.superbiz.myfaces.repository.UserRepository;
-import org.superbiz.myfaces.view.config.Pages;
-
-import jakarta.inject.Inject;
-import jakarta.inject.Named;
-import java.io.Serializable;
-
-import static org.apache.myfaces.extensions.cdi.message.api.payload.MessageSeverity.ERROR;
-
-@Named
-@ViewAccessScoped
-public class RegistrationPage implements Serializable {
-
-    private static final long serialVersionUID = 3844502441069448490L;
-
-    @Inject
-    private UserRepository userRepository;
-
-    @Inject
-    private Conversation conversation;
-
-    @Inject
-    private
-    @Jsf
-    MessageContext messageContext;
-
-    private User user = new User();
-
-    @Inject
-    private UserHolder userHolder;
-
-    @Equals("user.password")
-    private String repeatedPassword;
-
-    @BeanValidation(useGroups = Full.class) //triggers UniqueUserNameValidator
-    public Class<? extends Pages> register() {
-        this.userRepository.save(this.user);
-        this.messageContext.message()
-                .text("{msgUserRegistered}")
-                .namedArgument("userName", this.user.getUserName())
-                .add();
-
-        //in order to re-use the page-bean for the login-page
-        this.conversation.close();
-
-        return Pages.Login.class;
-    }
-
-    public Class<? extends Pages> login() {
-        User user = this.userRepository.loadUser(this.user.getUserName());
-        if (user != null && user.getPassword().equals(this.user.getPassword())) {
-            this.messageContext.message().text("{msgLoginSuccessful}").add();
-            this.userHolder.setCurrentUser(user);
-            return Pages.About.class;
-        }
-
-        this.messageContext.message().text("{msgLoginFailed}").payload(ERROR).add();
-
-        return null;
-    }
-
-    public User getUser() {
-        return user;
-    }
-
-    public String getRepeatedPassword() {
-        return repeatedPassword;
-    }
-
-    public void setRepeatedPassword(String repeatedPassword) {
-        this.repeatedPassword = repeatedPassword;
-    }
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/UserHolder.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/UserHolder.java
deleted file mode 100644
index de57b72ecd..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/UserHolder.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.superbiz.myfaces.view;
-
-import org.apache.myfaces.extensions.cdi.core.api.scope.conversation.WindowScoped;
-import org.superbiz.myfaces.domain.User;
-
-import jakarta.enterprise.context.Dependent;
-import jakarta.enterprise.inject.New;
-import jakarta.enterprise.inject.Produces;
-import jakarta.inject.Inject;
-import jakarta.inject.Named;
-import java.io.Serializable;
-
-//due to the enhanced entities it isn't possible to use them directly (due to final methods)
-@WindowScoped
-public class UserHolder implements Serializable {
-
-    private static final long serialVersionUID = -7687528373042288584L;
-
-    @Inject
-    @New
-    private User user;
-
-    @Produces
-    @Dependent
-    @Named("currentUser")
-    protected User createCurrentUser() {
-        return this.user;
-    }
-
-    public void setCurrentUser(User user) {
-        this.user = user;
-    }
-
-    public boolean isLoggedIn() {
-        return this.user.getId() != null;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/config/Pages.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/config/Pages.java
deleted file mode 100644
index 76645c63aa..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/config/Pages.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.superbiz.myfaces.view.config;
-
-import org.apache.myfaces.extensions.cdi.core.api.config.view.DefaultErrorView;
-import org.apache.myfaces.extensions.cdi.core.api.config.view.ViewConfig;
-import org.apache.myfaces.extensions.cdi.core.api.security.Secured;
-import org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page;
-import org.apache.myfaces.extensions.cdi.jsf.api.config.view.PageBean;
-import org.superbiz.myfaces.view.FeedbackPage;
-import org.superbiz.myfaces.view.InfoPage;
-import org.superbiz.myfaces.view.security.LoginAccessDecisionVoter;
-
-import static org.apache.myfaces.extensions.cdi.jsf.api.config.view.Page.NavigationMode.REDIRECT;
-
-@Page(navigation = REDIRECT)
-public interface Pages extends ViewConfig {
-
-    @Page
-    class Index implements Pages {
-
-    }
-
-    @InfoPage
-    @Page
-    class About implements Pages {
-
-    }
-
-    @Page
-    class Registration implements Pages {
-
-    }
-
-    @Page
-    class Login extends DefaultErrorView implements Pages /*just to benefit from the config*/ {
-
-    }
-
-    @Secured(LoginAccessDecisionVoter.class)
-            //@Secured(value = LoginAccessDecisionVoter.class, errorView = Login.class)
-    interface Secure extends Pages {
-
-        @PageBean(FeedbackPage.class)
-        @Page
-        class FeedbackList implements Secure {
-
-        }
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/security/LoginAccessDecisionVoter.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/security/LoginAccessDecisionVoter.java
deleted file mode 100644
index 9f583dfe5e..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/security/LoginAccessDecisionVoter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.superbiz.myfaces.view.security;
-
-import org.apache.myfaces.extensions.cdi.core.api.security.AbstractAccessDecisionVoter;
-import org.apache.myfaces.extensions.cdi.core.api.security.SecurityViolation;
-import org.apache.myfaces.extensions.cdi.jsf.api.Jsf;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
-import org.superbiz.myfaces.view.UserHolder;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.inject.Inject;
-import jakarta.interceptor.InvocationContext;
-import java.util.Set;
-
-@ApplicationScoped
-public class LoginAccessDecisionVoter extends AbstractAccessDecisionVoter {
-
-    private static final long serialVersionUID = -6332617547592896599L;
-
-    @Inject
-    private UserHolder userHolder;
-
-    @Inject
-    @Jsf
-    private MessageContext messageContext;
-
-    @Override
-    protected void checkPermission(InvocationContext invocationContext, Set<SecurityViolation> violations) {
-        if (!this.userHolder.isLoggedIn()) {
-            violations.add(newSecurityViolation(this.messageContext.message().text("{msgAccessDenied}").toText()));
-        }
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/util/InfoBean.java b/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/util/InfoBean.java
deleted file mode 100644
index 04cde77ab9..0000000000
--- a/examples/myfaces-codi-demo/src/main/java/org/superbiz/myfaces/view/util/InfoBean.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * 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.superbiz.myfaces.view.util;
-
-import org.apache.myfaces.extensions.cdi.core.api.CodiInformation;
-import org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStage;
-import org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProvider;
-import org.apache.myfaces.extensions.cdi.core.api.util.ClassUtils;
-import org.apache.myfaces.extensions.cdi.jsf.api.Jsf;
-import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigDescriptor;
-import org.apache.myfaces.extensions.cdi.jsf.api.config.view.ViewConfigResolver;
-import org.apache.myfaces.extensions.cdi.message.api.MessageContext;
-import org.apache.myfaces.extensions.validator.ExtValInformation;
-import org.superbiz.myfaces.view.InfoPage;
-
-import jakarta.annotation.PostConstruct;
-import jakarta.enterprise.context.SessionScoped;
-import jakarta.faces.context.FacesContext;
-import jakarta.inject.Inject;
-import jakarta.inject.Named;
-import jakarta.persistence.Persistence;
-import jakarta.validation.Validation;
-import java.io.Serializable;
-
-@Named
-@SessionScoped
-public class InfoBean implements Serializable {
-
-    private static final long serialVersionUID = -1748909261695527800L;
-
-    @Inject
-    private
-    @Jsf
-    MessageContext messageContext;
-
-    @Inject
-    private ProjectStage projectStage;
-
-    @Inject
-    private ViewConfigResolver viewConfigResolver;
-
-    @Inject
-    private FacesContext facesContext;
-
-    private String applicationMessageVersionInfo;
-
-    private String beanValidationVersion;
-
-    private String jpaVersion;
-
-    @PostConstruct
-    protected void showWelcomeMessage() {
-        String versionString = ClassUtils.getJarVersion(InfoBean.class);
-
-        if (versionString != null) {
-            this.applicationMessageVersionInfo = " (v" + versionString + ")";
-        }
-
-        this.beanValidationVersion =
-                ClassUtils.getJarVersion(Validation.buildDefaultValidatorFactory().getValidator().getClass());
-
-        this.jpaVersion =
-                ClassUtils.getJarVersion(Persistence.createEntityManagerFactory("demoApplicationPU").getClass());
-
-        if (!ProjectStage.IntegrationTest.equals(this.projectStage)) {
-            this.messageContext.message().text("{msgWelcome}").add();
-        }
-    }
-
-    public boolean isInfoPage() {
-        ViewConfigDescriptor viewConfigDescriptor =
-                this.viewConfigResolver.getViewConfigDescriptor(this.facesContext.getViewRoot().getViewId());
-
-        if (viewConfigDescriptor == null) {
-            return false;
-        }
-
-        return !viewConfigDescriptor.getMetaData(InfoPage.class).isEmpty();
-    }
-
-    public String getProjectStage() {
-        return this.projectStage.toString();
-    }
-
-    public String getApplicationVersion() {
-        return this.applicationMessageVersionInfo;
-    }
-
-    public String getCodiVersion() {
-        return CodiInformation.VERSION;
-    }
-
-    public String getCdiVersion() {
-        return ClassUtils.getJarVersion(BeanManagerProvider.getInstance().getBeanManager().getClass());
-    }
-
-    public String getExtValVersion() {
-        return ExtValInformation.VERSION;
-    }
-
-    public String getJsfVersion() {
-        return ClassUtils.getJarVersion(FacesContext.class);
-    }
-
-    public String getBeanValidationVersion() {
-        return this.beanValidationVersion;
-    }
-
-    public String getJpaVersion() {
-        return this.jpaVersion;
-    }
-}
diff --git a/examples/myfaces-codi-demo/src/main/resources/META-INF/persistence.xml b/examples/myfaces-codi-demo/src/main/resources/META-INF/persistence.xml
deleted file mode 100644
index 0e56230165..0000000000
--- a/examples/myfaces-codi-demo/src/main/resources/META-INF/persistence.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-<persistence xmlns="http://java.sun.com/xml/ns/persistence"
-             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
-http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
-             version="2.0">
-
-  <persistence-unit name="demoApplicationPU" transaction-type="RESOURCE_LOCAL">
-    <!-- needed by tomee 1.6.0+-->
-    <non-jta-data-source>demoDS</non-jta-data-source>
-
-    <!-- config of (non-)jta-data-source isn't needed if there is just one -->
-    <!-- @MappedSuperclass classes - see OPENJPA-1926 -->
-    <class>org.superbiz.myfaces.domain.AbstractDomainObject</class>
-
-    <!-- entities -->
-    <class>org.superbiz.myfaces.domain.User</class>
-    <class>org.superbiz.myfaces.domain.Feedback</class>
-    <class>org.superbiz.myfaces.domain.Comment</class>
-
-    <properties>
-      <property name="openjpa.DataCache" value="true"/>
-      <property name="openjpa.DynamicEnhancementAgent" value="true"/>
-      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
-      <property name="openjpa.jdbc.QuerySQLCache" value="true(EnableStatistics=true)"/>
-    </properties>
-  </persistence-unit>
-</persistence>
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/resources/META-INF/services/org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStageHolder b/examples/myfaces-codi-demo/src/main/resources/META-INF/services/org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStageHolder
deleted file mode 100644
index 9bcaeebbee..0000000000
--- a/examples/myfaces-codi-demo/src/main/resources/META-INF/services/org.apache.myfaces.extensions.cdi.core.api.projectstage.ProjectStageHolder
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-
-org.superbiz.myfaces.CustomProjectStage
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/resources/org/superbiz/myfaces/i18n/messages.properties b/examples/myfaces-codi-demo/src/main/resources/org/superbiz/myfaces/i18n/messages.properties
deleted file mode 100644
index ba81b1d1db..0000000000
--- a/examples/myfaces-codi-demo/src/main/resources/org/superbiz/myfaces/i18n/messages.properties
+++ /dev/null
@@ -1,60 +0,0 @@
-#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.
-
-
-
-#overrule the default format {1}: {0} to ignore the labels
-#jakarta.faces.validator.BeanValidator.MESSAGE={0}
-#jakarta.faces.validator.BeanValidator.MESSAGE_detail={0}
-
-btnRegisterAndRestart=save and restart
-btnLogin=login
-lnkLogin=Login
-btnRegister=register
-
-lblLoginName=Login-name
-lblFirstName=First-name
-lblLastName=Last-name
-lblPassword=Password
-lblRepeatedPassword=Repeated password
-lblFinish=finish
-
-lblLeftMenuTitle=Menu
-lblHome=Home
-lblFeedback=Feedback
-
-lblWiki=Wiki
-lblExternalExamples=External examples
-
-menuDocumentation=Documentation
-menuMisc=Misc
-menuAbout=About
-
-welcome=Welcome
-msgWelcome=Welcome to the Apache TomEE/MyFaces-Stack Demo
-
-msgUserRegistered=User {userName} registered successfully!
-msgUserNotRegistered=Failed to register user {userName}!
-
-msgLoginSuccessful=Login successful!
-msgLoginFailed=Login failed!
-msgAccessDenied=Access denied!
-tblFeedbackTopic=Topic
-tblFeedbackDescription=Description
-lblTopic=Topic
-lblDescription=Feedback Text
-btnSave=save
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/beans.xml b/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/beans.xml
deleted file mode 100644
index 6a4e0bd035..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/beans.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-
-<beans xmlns="http://java.sun.com/xml/ns/javaee"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
-</beans>
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/faces-config.xml b/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/faces-config.xml
deleted file mode 100644
index 20feafbd1a..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/faces-config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
- * 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.
--->
-<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
-              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
-              version="2.0">
-
-    <factory>
-      <lifecycle-factory>org.superbiz.myfaces.startup.ExtValLifecycleFactory</lifecycle-factory>
-    </factory>
-
-    <application>
-    <locale-config>
-      <default-locale>en</default-locale>
-      <supported-locale>en</supported-locale>
-    </locale-config>
-    <message-bundle>org.superbiz.myfaces.i18n.messages</message-bundle>
-    <resource-bundle>
-      <base-name>org.superbiz.myfaces.i18n.messages</base-name>
-      <var>i18n</var>
-    </resource-bundle>
-  </application>
-
-</faces-config>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/web.xml b/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index de2143d1e6..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-         version="3.0">
-
-  <servlet>
-    <servlet-name>Faces Servlet</servlet-name>
-    <servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>Faces Servlet</servlet-name>
-    <url-pattern>*.xhtml</url-pattern>
-  </servlet-mapping>
-
-  <welcome-file-list>
-    <welcome-file>pages/index.xhtml</welcome-file>
-  </welcome-file-list>
-</web-app>
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/webapp/layout/main-template.xhtml b/examples/myfaces-codi-demo/src/main/webapp/layout/main-template.xhtml
deleted file mode 100644
index 1cb8079180..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/layout/main-template.xhtml
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
- * 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.
--->
-
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:f="http://java.sun.com/jsf/core"
-      xmlns:h="http://java.sun.com/jsf/html"
-      xmlns:ui="http://java.sun.com/jsf/facelets"
-      xmlns:p="http://primefaces.prime.com.tr/ui"
-    >
-
-<f:view contentType="text/html">
-
-  <h:head>
-    <title>Apache TomEE/MyFaces-Stack Demo</title>
-    <h:outputStylesheet library="styles" name="base.css"/>
-    <h:outputStylesheet library="styles" name="theme.css"/>
-
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-  </h:head>
-  <h:body>
-    <div id="header">
-      <h:form id="topMenuForm" prependId="false">
-        <div id="top_menu">
-          <div id="top_menu_container">
-            <h:panelGroup rendered="#{infoBean.infoPage}">
-              <div class="date">Apache TomEE/MyFaces-Stack <b>Demo-App</b> #{infoBean.applicationVersion}</div>
-            </h:panelGroup>
-            <div id="projectStage" class="date">[#{infoBean.projectStage}]</div>
-            <ul>
-              <li>
-                <h:commandLink id="lnkLogin" value="#{i18n.lnkLogin}" action="#{menuBean.login}"/>
-              </li>
-              <li>
-                <a href="http://www.apache.org" target="_blank">Apache</a>
-              </li>
-              <li>
-                <a href="http://myfaces.apache.org" target="_blank">MyFaces</a>
-              </li>
-            </ul>
-            <div class="clear"></div>
-          </div>
-        </div>
-      </h:form>
-      <div id="header_bottom">
-        <div id="logo_banner_container">
-          <div id="logo">
-            <a href="http://myfaces.apache.org/">
-              <h:graphicImage library="images" name="myfaces_logo.jpg" alt="MyFaces logo"/>
-            </a>
-          </div>
-          <div id="banner">
-            <a href="http://myfaces.apache.org/extensions/cdi/index.html">
-              <h:graphicImage library="images" name="codi_logo.png" alt="CODI logo"/>
-            </a>
-          </div>
-          <div class="clear"></div>
-        </div>
-      </div>
-    </div>
-
-    <div id="main_container">
-      <div id="left_column">
-        <h:form id="menuForm" prependId="false">
-          <div class="left_menu_top">
-            <div class="left_menu_bottom">
-              <h5>#{i18n.lblLeftMenuTitle}</h5>
-
-              <div class="content">
-                <ul class="left_menu">
-                  <ui:include src="menu.xhtml"/>
-                </ul>
-              </div>
-            </div>
-          </div>
-        </h:form>
-
-        <div class="clear"></div>
-
-        <h:form id="leftMenuForm" prependId="false">
-
-          <div class="left_menu_top">
-            <div class="left_menu_bottom">
-              <h5>#{i18n.menuMisc}</h5>
-
-              <div class="content">
-                <ul class="left_menu">
-                  <li class="none">
-                    <h:commandLink id="menuAbout" value="#{i18n.menuAbout}" action="#{menuBean.about}"/>
-                  </li>
-                </ul>
-              </div>
-            </div>
-          </div>
-        </h:form>
-        <div class="clear"></div>
-      </div>
-      <div id="body_column">
-        <div>
-          <div class="section">
-
-            <ui:insert name="header"><h2>Apache TomEE/MyFaces-Stack Demo-App</h2></ui:insert>
-
-            <div class="main_content">
-              <h:form id="mainForm" prependId="false">
-                <ui:insert name="content"><p>No content available.</p></ui:insert>
-              </h:form>
-            </div>
-
-          </div>
-        </div>
-      </div>
-      <div class="clear"></div>
-    </div>
-    <p:growl sticky="false"/>
-    <div id="footer">
-      <div class="copyright">
-        <p>&#169; The Apache Software Foundation
-        </p>
-      </div>
-    </div>
-  </h:body>
-</f:view>
-</html>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/layout/menu.xhtml b/examples/myfaces-codi-demo/src/main/webapp/layout/menu.xhtml
deleted file mode 100644
index cc2a35bc71..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/layout/menu.xhtml
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
- * 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.
--->
-<div id="menu"
-     xmlns="http://www.w3.org/1999/xhtml"
-     xmlns:h="http://java.sun.com/jsf/html"
-    >
-
-  <li class="none">
-    <h:commandLink id="menuHome" value="#{i18n.lblHome}" action="#{menuBean.home}"/>
-  </li>
-
-  <li class="none">
-    <h:commandLink id="menuFeedback" value="#{i18n.lblFeedback}" action="#{menuBean.feedback}"/>
-  </li>
-
-</div>
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/webapp/pages/about.xhtml b/examples/myfaces-codi-demo/src/main/webapp/pages/about.xhtml
deleted file mode 100644
index 32e4f5dbd6..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/pages/about.xhtml
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
- * 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.
--->
-
-<html>
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:h="http://java.sun.com/jsf/html"
-                template="/layout/main-template.xhtml">
-
-  <ui:define name="content">
-    <h:panelGrid columns="2">
-      <h:outputLabel value="Current Window-ID:" for="wid"/>
-      <h:outputText id="wid" value="#{currentWindowContext.id}"/>
-
-      <h:outputLabel value="Apache MyFaces-Core:" for="jsfVersion"/>
-      <h:outputText id="jsfVersion" value="#{infoBean.jsfVersion}"/>
-
-      <h:outputLabel value="Apache OpenWebBeans:" for="cdiVersion"/>
-      <h:outputText id="cdiVersion" value="#{infoBean.cdiVersion}"/>
-
-      <h:outputLabel value="Apache MyFaces CODI:" for="codiVersion"/>
-      <h:outputText id="codiVersion" value="#{infoBean.codiVersion}"/>
-
-      <h:outputLabel value="Apache MyFaces ExtVal:" for="extValVersion"/>
-      <h:outputText id="extValVersion" value="#{infoBean.extValVersion}"/>
-
-      <h:outputLabel value="Apache BVal:" for="bValVersion"/>
-      <h:outputText id="bValVersion" value="#{infoBean.beanValidationVersion}"/>
-
-      <h:outputLabel value="Apache OpenJPA:" for="jpaVersion"/>
-      <h:outputText id="jpaVersion" value="#{infoBean.jpaVersion}"/>
-    </h:panelGrid>
-  </ui:define>
-
-</ui:composition>
-</html>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/pages/index.xhtml b/examples/myfaces-codi-demo/src/main/webapp/pages/index.xhtml
deleted file mode 100644
index ced13a9331..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/pages/index.xhtml
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
- * 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.
--->
-
-<html>
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                template="/layout/main-template.xhtml">
-
-  <ui:define name="content">
-    <h2>Illustrated Features</h2>
-
-    <h3>Apache MyFaces CODI</h3>
-    <ul>
-      <li>Type-safe view-config</li>
-      <li>Type-safe (custom) view-meta-data</li>
-      <li>Type-safe navigation</li>
-      <li>Type-safe (specialized) config</li>
-      <li>Type-safe custom project-stage</li>
-      <li>@WindowScoped</li>
-      <li>Controlling CODI scopes with WindowContext</li>
-      <li>@ViewAccessScoped</li>
-      <li>Manual conversation handling</li>
-      <li>Secured pages (AccessDecisionVoter)</li>
-      <li>@Transactional</li>
-      <li>I18n (fluent API)</li>
-      <li>Dependency-Injection for JSR303 (BV) constraint-validators</li>
-      <li>Dependency-Injection for JSF phase-listeners</li>
-    </ul>
-
-    <h3>Apache MyFaces ExtVal</h3>
-    <ul>
-      <li>Cross-Field validation (@Equals)</li>
-      <li>Type-safe group-validation (@BeanValidation) for JSF action-methods</li>
-    </ul>
-
-    <h2>Hints</h2>
-    <ul>
-      <li>
-        This application doesn't show the/a best practise. It's only a small application which shows a bunch of features.
-      </li>
-      <li>
-        To sync the project-stage of MyFaces CODI and JSF use e.g. faces.PROJECT_STAGE=Development in [tomee dir]/conf/system.properties
-      </li>
-    </ul>
-  </ui:define>
-
-</ui:composition>
-</html>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/pages/login.xhtml b/examples/myfaces-codi-demo/src/main/webapp/pages/login.xhtml
deleted file mode 100644
index 7587d017cd..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/pages/login.xhtml
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
- * 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.
--->
-
-<html>
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:h="http://java.sun.com/jsf/html"
-                template="/layout/main-template.xhtml">
-
-  <ui:define name="content">
-    <h:panelGrid columns="3">
-      <h:outputLabel for="loginName" value="#{i18n.lblLoginName}: "/>
-      <h:inputText id="loginName" label="#{i18n.lblLoginName}" value="#{registrationPage.user.userName}" required="true"/>
-      <h:message for="loginName" showSummary="true" showDetail="false"/>
-
-      <h:outputLabel for="password" value="#{i18n.lblPassword}: "/>
-      <h:inputSecret id="password" label="#{i18n.lblPassword}" value="#{registrationPage.user.password}"/>
-      <h:message for="password" showSummary="true" showDetail="false"/>
-    </h:panelGrid>
-    <p/>
-    <h:panelGrid columns="2">
-      <h:commandButton id="login" value="#{i18n.btnLogin}" action="#{registrationPage.login}"/>
-      <h:commandLink id="register" value="#{i18n.btnRegister}" action="#{menuBean.register}" immediate="true"/>
-    </h:panelGrid>
-  </ui:define>
-
-</ui:composition>
-</html>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/pages/registration.xhtml b/examples/myfaces-codi-demo/src/main/webapp/pages/registration.xhtml
deleted file mode 100644
index ab7c0ecc51..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/pages/registration.xhtml
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
- * 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.
--->
-
-<html>
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:h="http://java.sun.com/jsf/html"
-                template="/layout/main-template.xhtml">
-
-  <ui:define name="content">
-    <h:panelGrid columns="3">
-      <h:outputLabel for="firstName" value="#{i18n.lblFirstName}: "/>
-      <h:inputText id="firstName" label="#{i18n.lblFirstName}" value="#{registrationPage.user.firstName}"/>
-      <h:message for="firstName" showSummary="true" showDetail="false"/>
-
-      <h:outputLabel for="lastName" value="#{i18n.lblLastName}: "/>
-      <h:inputText id="lastName" label="#{i18n.lblLastName}" value="#{registrationPage.user.lastName}"/>
-      <h:message for="lastName" showSummary="true" showDetail="false"/>
-
-      <h:outputLabel for="loginName" value="#{i18n.lblLoginName}: "/>
-      <h:inputText id="loginName" label="#{i18n.lblLoginName}" value="#{registrationPage.user.userName}" required="true"/>
-      <h:message for="loginName" showSummary="true" showDetail="false"/>
-
-      <h:outputLabel for="password" value="#{i18n.lblPassword}: "/>
-      <h:inputSecret id="password" label="#{i18n.lblPassword}" value="#{registrationPage.user.password}"/>
-      <h:message for="password" showSummary="true" showDetail="false"/>
-
-      <h:outputLabel for="repeatedPassword" value="#{i18n.lblRepeatedPassword}: "/>
-      <h:inputSecret id="repeatedPassword" label="#{i18n.lblRepeatedPassword}" value="#{registrationPage.repeatedPassword}"/>
-      <h:message for="repeatedPassword" showSummary="true" showDetail="false"/>
-    </h:panelGrid>
-    <p/>
-    <h:commandButton id="register" value="#{i18n.btnRegister}" action="#{registrationPage.register}"/>
-  </ui:define>
-
-</ui:composition>
-</html>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/pages/secure/feedbackList.xhtml b/examples/myfaces-codi-demo/src/main/webapp/pages/secure/feedbackList.xhtml
deleted file mode 100644
index 731b55ab21..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/pages/secure/feedbackList.xhtml
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html
-    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!--
- * 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.
--->
-
-<html>
-<ui:composition xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:ui="http://java.sun.com/jsf/facelets"
-                xmlns:h="http://java.sun.com/jsf/html"
-                xmlns:f="http://java.sun.com/jsf/core"
-                xmlns:p="http://primefaces.prime.com.tr/ui"
-                template="/layout/main-template.xhtml">
-
-  <ui:define name="content">
-    <h:panelGrid columns="3">
-      <h:outputLabel for="topic" value="#{i18n.lblTopic}: "/>
-      <h:inputText id="topic" label="#{i18n.lblTopic}" value="#{feedbackPage.feedback.topic}" required="true"/>
-      <h:message for="topic" showSummary="true" showDetail="false"/>
-
-      <h:outputLabel for="description" value="#{i18n.lblDescription}: "/>
-      <h:inputTextarea id="description" cols="80" rows="10" label="#{i18n.lblDescription}" value="#{feedbackPage.feedback.description}"/>
-      <h:message for="description" showSummary="true" showDetail="false"/>
-    </h:panelGrid>
-
-    <h:commandButton id="save" value="#{i18n.btnSave}" action="#{feedbackPage.save}"/>
-
-    <p/>
-
-    <p:dataTable var="entry" value="#{feedbackPage.feedbackList}" paginator="true" paginatorPosition="bottom"
-                 rows="10">
-      <p:column>
-        <f:facet name="header">
-          <h:outputText value="#{i18n.tblFeedbackTopic}"/>
-        </f:facet>
-        #{entry.topic}
-      </p:column>
-      <p:column>
-        <f:facet name="header">
-          <h:outputText value="#{i18n.tblFeedbackDescription}"/>
-        </f:facet>
-        #{entry.description}
-      </p:column>
-    </p:dataTable>
-  </ui:define>
-
-</ui:composition>
-</html>
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/codi_logo.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/codi_logo.png
deleted file mode 100644
index ee5d5873ba..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/codi_logo.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/myfaces_logo.jpg b/examples/myfaces-codi-demo/src/main/webapp/resources/images/myfaces_logo.jpg
deleted file mode 100644
index fb886b1a24..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/myfaces_logo.jpg and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/code_section.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/code_section.png
deleted file mode 100644
index 9a43d15c6a..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/code_section.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/footer.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/footer.png
deleted file mode 100644
index dc2fb91cb6..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/footer.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/h2.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/h2.png
deleted file mode 100644
index 853adc22c7..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/h2.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_bottom.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_bottom.png
deleted file mode 100644
index 78d682972e..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_bottom.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand.gif
deleted file mode 100644
index b317bdbcc3..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand_hover.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand_hover.gif
deleted file mode 100644
index c30ab723df..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand_hover.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand_selected.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand_selected.gif
deleted file mode 100644
index 06c039750d..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_expand_selected.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_option.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_option.gif
deleted file mode 100644
index 43b01603ea..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_option.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_option_hover.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_option_hover.gif
deleted file mode 100644
index 67aad11f10..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_option_hover.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_top.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_top.png
deleted file mode 100644
index e85f4f143a..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/left_menu_top.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/logo_banner_container.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/logo_banner_container.png
deleted file mode 100644
index 430245a63c..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/logo_banner_container.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/main_space_list.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/main_space_list.gif
deleted file mode 100644
index 210f664881..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/main_space_list.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/table_head.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/table_head.png
deleted file mode 100644
index 65667a6927..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/table_head.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/table_head_dark.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/table_head_dark.png
deleted file mode 100644
index c726ed457a..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/table_head_dark.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/top_menu.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/top_menu.png
deleted file mode 100644
index 3c3c7db93d..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/top_menu.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/top_menu_hover.png b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/top_menu_hover.png
deleted file mode 100644
index f883f4dc7a..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/top_menu_hover.png and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/transparent.gif b/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/transparent.gif
deleted file mode 100644
index 980c789021..0000000000
Binary files a/examples/myfaces-codi-demo/src/main/webapp/resources/images/slices/transparent.gif and /dev/null differ
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/styles/base.css b/examples/myfaces-codi-demo/src/main/webapp/resources/styles/base.css
deleted file mode 100644
index 20ec821a63..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/resources/styles/base.css
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * 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.
- */
-
-body {
-    margin: 0;
-    padding: 0;
-}
-
-img {
-    border: none;
-}
-
-table {
-    padding: 0;
-    width: 50%;
-    margin-left: -2px;
-    margin-right: -2px;
-}
-
-acronym {
-    cursor: help;
-    border-bottom: 1px dotted #feb;
-}
-
-table.bodyTable th, table.bodyTable td {
-    padding: 2px 4px 2px 4px;
-    vertical-align: top;
-}
-
-div.clear {
-    clear: both;
-    visibility: hidden;
-}
-
-div.clear hr {
-    display: none;
-}
-
-#bannerLeft, #bannerRight {
-    font-size: xx-large;
-    font-weight: bold;
-}
-
-#bannerLeft img, #bannerRight img {
-    margin: 0;
-}
-
-.xleft, #bannerLeft img {
-    float: left;
-    text-shadow: #7CFC00 1px 1px 1px;
-}
-
-.xright, #bannerRight {
-    float: right;
-    text-shadow: #7CFC00 1px 1px 1px;
-}
-
-#banner {
-    padding: 0;
-}
-
-#banner img {
-    border: none;
-}
-
-#breadcrumbs {
-    padding: 3px 10px 3px 10px;
-}
-
-#leftColumn {
-    width: 170px;
-    float: left;
-    overflow: auto;
-}
-
-#bodyColumn {
-    margin-right: 1.5em;
-    margin-left: 197px;
-}
-
-#legend {
-    padding: 8px 0 8px 0;
-}
-
-#navcolumn {
-    padding: 8px 4px 0 8px;
-}
-
-#navcolumn h5 {
-    margin: 0;
-    padding: 0;
-    font-size: small;
-}
-
-#navcolumn ul {
-    margin: 0;
-    padding: 0;
-    font-size: small;
-}
-
-#navcolumn li {
-    list-style-type: none;
-    background-image: none;
-    background-repeat: no-repeat;
-    background-position: 0 0.4em;
-    padding-left: 16px;
-    list-style-position: outside;
-    line-height: 1.2em;
-    font-size: smaller;
-}
-
-#poweredBy {
-    text-align: center;
-}
-
-#navcolumn img {
-    margin-top: 10px;
-    margin-bottom: 3px;
-}
-
-#poweredBy img {
-    display: block;
-    margin: 20px 0 20px 17px;
-}
-
-#search img {
-    margin: 0;
-    display: block;
-}
-
-#search #q, #search #btnG {
-    border: 1px solid #999;
-    margin-bottom: 10px;
-}
-
-#search form {
-    margin: 0;
-}
-
-#lastPublished {
-    font-size: x-small;
-}
-
-.navSection {
-    margin-bottom: 2px;
-    padding: 8px;
-}
-
-.navSectionHead {
-    font-weight: bold;
-    font-size: x-small;
-}
-
-.section {
-    padding: 4px;
-}
-
-#footer {
-    padding: 3px 10px 3px 10px;
-    font-size: x-small;
-}
-
-#breadcrumbs {
-    font-size: x-small;
-    margin: 0;
-}
-
-.source {
-    padding: 12px;
-    margin: 1em 7px 1em 7px;
-}
-
-.source pre {
-    margin: 0;
-    padding: 0;
-}
\ No newline at end of file
diff --git a/examples/myfaces-codi-demo/src/main/webapp/resources/styles/theme.css b/examples/myfaces-codi-demo/src/main/webapp/resources/styles/theme.css
deleted file mode 100644
index 73e716152b..0000000000
--- a/examples/myfaces-codi-demo/src/main/webapp/resources/styles/theme.css
+++ /dev/null
@@ -1,480 +0,0 @@
-/*
- * 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.
- */
-
-/* Init --------------------------------------------------------------------- */
-* {
-    margin: 0px;
-    padding: 0px;
-}
-
-body {
-    text-align: center; /*font-size: 75%;*/
-    /*=12pixels*/
-    font-size: 12px;
-    font-family: verdana, tahoma, sans-serif;
-    font-weight: normal;
-    line-height: 1.4em;
-    color: #666666;
-    background-color: white;
-}
-
-div {
-    text-align: left;
-}
-
-span {
-    display: inline;
-}
-
-img {
-    display: block;
-}
-
-h1, h2, h3 {
-    font-family: arial, geneva, helvetica, sans-serif;
-    font-weight: bold;
-    margin-top: 10px;
-    color: #669900;
-}
-
-h1 {
-    font-size: 1.6em;
-}
-
-h2 {
-    font-size: 1.2em;
-}
-
-h3 {
-    font-size: 1.1em;
-}
-
-ul {
-    list-style-type: none;
-}
-
-a {
-    text-decoration: none;
-    color: #669900;
-}
-
-a:hover {
-    color: #FF9900;
-}
-
-/*
- * Clear float positions.
- */
-.clear {
-    clear: both;
-}
-
-/* IE fixes ------------------------------------------------ */
-/* Solve the IE 3px gap bug */
-/* Hides from IE5-mac \*/
-* html .section, p {
-    height: 1%;
-}
-
-/* End hide from IE5-mac */
-/* Add the min and max width in IE */
-* #main_container, * #top_menu_container, * #logo_banner_container, * .copyright {
-    width: expression(document . body . clientWidth >   1210 ?   "1200px" :   (
-		document . body . clientWidth <   960 ?   "950px" :   "auto") );
-}
-
-/* PNG transparency fix */
-img {
-    behavior: url(css/png-fix.htc);
-}
-
-/* IE fixes ----------------------------------------------------------------- */
-/* Fluid layout constraints ----------------------------------------- */
-#main_container, #top_menu_container, #logo_banner_container, .copyright {
-    max-width: 1200px;
-    min-width: 950px;
-}
-
-#footer, #top_menu, #header_bottom {
-    width: 100%;
-    min-width: 950px;
-}
-
-/* Main layout -------------------------------------------------------------- */
-#main_container {
-    margin: 0px auto 0px auto;
-}
-
-#footer {
-    margin: 0px;
-    border: 0px;
-    padding: 0px;
-    height: 90px;
-    margin-top: 50px;
-    text-align: center;
-    color: white;
-    background: #52842D url("#{resource['images:slices/footer.png']}") repeat-x;
-}
-
-/* Header layout ------------------------------------------------------------ */
-#top_menu {
-    width: auto;
-    height: 45px;
-    text-align: center;
-    background: #52842D url("#{resource['images:slices/top_menu.png']}") repeat-x;
-}
-
-#top_menu_container {
-    margin: 0px auto 0px auto;
-    padding-top: 4px;
-}
-
-#header_bottom {
-    height: auto;
-    text-align: center;
-    background: url("#{resource['images:slices/logo_banner_container.png']}") repeat-x;
-}
-
-#logo_banner_container {
-    margin: 0px auto 0px auto;
-}
-
-/* body layout -------------------------------------------------------------- */
-#left_column {
-    float: left;
-    width: 210px;
-    height: auto;
-}
-
-#body_column {
-    padding: 1px 0px 0px 230px;
-    width: auto;
-}
-
-/* footer layout ------------------------------------------------------------ */
-.copyright {
-    margin: 0px auto 0px auto;
-    padding-top: 15px;
-}
-
-/* logo_banner_container layout --------------------------------------------- */
-#logo {
-    float: left;
-    width: 210px;
-    height: 100px;
-    margin-top: 10px;
-}
-
-#banner {
-    float: right;
-    width: 210px;
-    height: 85px;
-    margin-top: 10px;
-}
-
-/* leftColumn layout ------------------------------------------------------ */
-.left_menu_container {
-    width: 210px;
-}
-
-#powered_by {
-    /*float: right;*/
-    text-align: center;
-}
-
-#powered_by img {
-    margin: 10px auto 10px auto;
-}
-
-/* left_menu layout --------------------------------------------------------- */
-.left_menu_top {
-    width: 210px;
-    background: url("#{resource['images:slices/left_menu_top.png']}") no-repeat top;
-}
-
-.left_menu_bottom {
-    width: 210px;
-    background: url("#{resource['images:slices/left_menu_bottom.png']}") no-repeat bottom;
-}
-
-/* top menu ----------------------------------------------------------------- */
-#top_menu div.date, #top_menu div.version {
-    margin: 9px 0px 0px 10px;
-    float: left;
-    color: white;
-}
-
-#top_menu ul {
-    float: right;
-    height: 37px;
-    border-right: 1px solid #80AA66;
-}
-
-#top_menu li {
-    display: inline;
-    height: 37px;
-    margin-left: -4px;
-}
-
-#top_menu a {
-    position: relative;
-    top: 9px;
-    border-left: 1px solid #80AA66;
-    padding: 10px 10px 13px 10px;
-    font-size: 12px;
-    color: white;
-}
-
-#top_menu a:hover {
-    text-decoration: underline;
-    background: url("#{resource['images:slices/top_menu_hover.png']}") repeat-x top;
-}
-
-/* left menu - first level menu --------------------------------------------- */
-.left_menu_top h5 {
-    padding: 26px 20px 0px 25px;
-    font-size: 1em;
-    color: #84683E;
-}
-
-ul.left_menu {
-    padding: 22px 20px 22px 25px;
-}
-
-ul.left_menu a {
-    font-size: 0.9em;
-    color: #705F38;
-    margin-left: 2px;
-    padding-left: 15px;
-}
-
-ul.left_menu a:hover {
-    color: #FF9900;
-}
-
-ul.left_menu li.none a {
-    background: url("#{resource['images:slices/left_menu_option.gif']}") no-repeat left;
-}
-
-ul.left_menu li.none a:hover {
-    background: url("#{resource['images:slices/left_menu_option_hover.gif']}") no-repeat left;
-}
-
-ul.left_menu li.none a.selected {
-    font-weight: bold;
-    background: none;
-}
-
-ul.left_menu li.expanded a {
-    font-weight: bold;
-    margin-left: 0px;
-    background: url("#{resource['images:slices/left_menu_expand_selected.gif']}") no-repeat left;
-}
-
-ul.left_menu li.expanded a:hover {
-    background: url("#{resource['images:slices/left_menu_expand_hover.gif']}") no-repeat left;
-}
-
-ul.left_menu li.collapsed a {
-    margin-left: 0px;
-    background: url("#{resource['images:slices/left_menu_expand.gif']}") no-repeat left;
-}
-
-ul.left_menu li.collapsed a:hover {
-    background: url("#{resource['images:slices/left_menu_expand_hover.gif']}") no-repeat left;
-}
-
-/* left menu - second level menu ------------------------------------------- */
-ul.left_menu ul {
-    list-style-type: none;
-    padding: 0px 0px 10px 10px;
-}
-
-ul.left_menu li.expanded ul {
-    display: block;
-}
-
-ul.left_menu li.expanded ul a {
-    font-weight: normal;
-    background: none;
-}
-
-ul.left_menu li.expanded ul li.expanded a {
-    font-weight: bold;
-    background: url("#{resource['images:slices/left_menu_expand_selected.gif']}") no-repeat left;
-}
-
-ul.left_menu li.expanded ul li.expanded a:hover {
-    background: url("#{resource['images:slices/left_menu_expand_hover.gif']}") no-repeat left;
-}
-
-ul.left_menu li.expanded ul li.collapsed a {
-    font-weight: normal;
-    background: url("#{resource['images:slices/left_menu_expand.gif']}") no-repeat left;
-}
-
-ul.left_menu li.expanded ul li.collapsed a:hover {
-    background: url("#{resource['images:slices/left_menu_expand_hover.gif']}") no-repeat left;
-}
-
-ul.left_menu li.expanded ul a.selected {
-    font-weight: bold;
-}
-
-ul.left_menu li.collapsed ul {
-    display: none;
-}
-
-ul.left_menu ul li.none a,
-ul.left_menu ul li.none a:hover,
-ul.left_menu ul li.none a.selected {
-    background: none;
-}
-
-/* left menu - third level menu --------------------------------------------- */
-ul.left_menu ul ul {
-    padding: 0px 0px 10px 10px;
-}
-
-ul.left_menu ul li.expanded ul {
-    display: block;
-}
-
-ul.left_menu ul li.expanded ul li.none a {
-    font-weight: normal;
-}
-
-ul.left_menu ul li.expanded ul li.none a.selected {
-    font-weight: bold;
-}
-
-ul.left_menu ul li.expanded ul li.none a,
-ul.left_menu ul li.expanded ul li.none a:hover,
-ul.left_menu ul li.expanded ul li.none a.selected {
-    background: none;
-}
-
-/* body_column -------------------------------------------------------------- */
-#body_column p {
-    margin: 15px 15px 0px 0px;
-}
-
-#body_column .section, #body_column dl {
-    margin: 25px 0px 0px 0px;
-    padding: 0px 10px;
-}
-
-#body_column .section {
-}
-
-#body_column .section .section {
-    margin: 0px;
-    border: 0px;
-    padding: 0px;
-    overflow: auto;
-}
-
-/* Overflow fix for IE */
-* #body_column .section .section {
-    position: relative;
-    width: 100%;
-    overflow: hidden;
-    overflow-x: auto;
-}
-
-#body_column ul {
-    margin: 0px 15px 10px 15px;
-}
-
-#body_column ul li {
-    padding: 0px 0px 0px 15px;
-    background: url("#{resource['images:slices/main_space_list.gif']}") no-repeat left 5px;
-}
-
-#body_column ol {
-    padding: 15px 0px 15px 20px;
-}
-
-#body_column ol ol {
-    padding: 0px 0px 0px 15px;
-}
-
-/* tables ------------------------------------------------------------------- */
-#body_column table.bodyTable {
-    margin: 0px 0px 10px 0px;
-    border-collapse: collapse;
-    padding: 2px;
-    font-family: Tahoma, Arial, sans-serif;
-    font-size: 0.9em;
-    color: #333333;
-    background: white;
-}
-
-#body_column table.bodyTable th, table.bodyTable tr, table.bodyTable td {
-    margin: 0px;
-    border: 1px solid white;
-    padding: 0px 7px 0px 7px;
-}
-
-#body_column table.bodyTable tr.a {
-    background: #F7F9F4;
-}
-
-#body_column table.bodyTable tr.b {
-    background: #F2F5ED;
-}
-
-#body_column table a.externalLink {
-    background: none;
-    padding-right: 0px;
-}
-
-#body_column table.bodyTable th {
-    padding: 7px 7px 5px 7px;
-    background: #CDDCB8 url("#{resource['images:slices/table_head_dark.png']}") repeat-x;
-}
-
-/* source sections ---------------------------------------------------------- */
-#body_column .source, code {
-    margin: 14px 0px 14px 0px;
-    border: 1px solid #E6E9DA;
-    font-size: 1.1em;
-    font-family: "Courier new", Courier, monospace;
-    color: #333333;
-    background: #F9FAF5 url("#{resource['images:slices/code_section.png']}") repeat-x top;
-}
-
-#body_column b {
-    padding-top: 10px;
-}
-
-#body_column h2 {
-    padding: 5px 10px 5px 10px;
-    border: 1px solid #D8E4C7;
-    background: white url("#{resource['images:slices/h2.png']}") repeat-x top;
-}
-
-.main_content {
-    padding: 30px;
-}
-
-/* copyright ---------------------------------------------------------------- */
-.copyright p {
-    font-size: 0.9em;
-}
\ No newline at end of file
diff --git a/examples/pom.xml b/examples/pom.xml
index 7fc636f7d4..f0e8e0d428 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -128,7 +128,6 @@
     <module>multi-jpa-provider-testing</module>
     <module>multiple-arquillian-adapters</module>
     <module>multiple-tomee-arquillian</module>
-<!--    <module>myfaces-codi-demo</module>-->
     <module>persistence-fragment</module>
     <module>pojo-webservice</module>
 <!--    <module>polling-parent</module>-->