{"id":18308745,"url":"https://github.com/joinfaces/joinfaces-maven-jar-example","last_synced_at":"2025-04-05T08:05:24.622Z","repository":{"id":8501776,"uuid":"58637774","full_name":"joinfaces/joinfaces-maven-jar-example","owner":"joinfaces","description":" JoinFaces Maven Jar Example","archived":false,"fork":false,"pushed_at":"2025-03-26T23:11:41.000Z","size":3810,"stargazers_count":88,"open_issues_count":15,"forks_count":80,"subscribers_count":9,"default_branch":"5.5.x","last_synced_at":"2025-03-29T07:04:32.769Z","etag":null,"topics":["angularfaces","bootsfaces","butterfaces","jetty","joinfaces","jsf","mojarra","myfaces","primefaces","spring-boot","tomcat","undertow"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joinfaces.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-12T12:02:29.000Z","updated_at":"2025-03-26T23:11:12.000Z","dependencies_parsed_at":"2023-02-19T07:45:38.784Z","dependency_job_id":"ef20c900-1e03-4888-993d-44917ef4315f","html_url":"https://github.com/joinfaces/joinfaces-maven-jar-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinfaces%2Fjoinfaces-maven-jar-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinfaces%2Fjoinfaces-maven-jar-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinfaces%2Fjoinfaces-maven-jar-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joinfaces%2Fjoinfaces-maven-jar-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joinfaces","download_url":"https://codeload.github.com/joinfaces/joinfaces-maven-jar-example/tar.gz/refs/heads/5.5.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305933,"owners_count":20917208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angularfaces","bootsfaces","butterfaces","jetty","joinfaces","jsf","mojarra","myfaces","primefaces","spring-boot","tomcat","undertow"],"created_at":"2024-11-05T16:09:08.002Z","updated_at":"2025-04-05T08:05:24.615Z","avatar_url":"https://github.com/joinfaces.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"JoinFaces Example\n=====\n[![Build Status](https://github.com/joinfaces/joinfaces-maven-jar-example/actions/workflows/maven.yml/badge.svg)](https://github.com/joinfaces/joinfaces-maven-jar-example/actions)\n[![Codecov](https://codecov.io/gh/joinfaces/joinfaces-maven-jar-example/branch/4.7.x/graph/badge.svg)](https://codecov.io/gh/joinfaces/joinfaces-maven-jar-example)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=joinfaces_joinfaces-maven-jar-example\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=joinfaces_joinfaces-maven-jar-example)\n[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)\n\nThis SAP (Single Page Application) illustrates Jakarta Faces usage inside JAR packaged Spring Boot Application.\n\n[JoinFaces](https://joinfaces.org) autoconfigures \n[PrimeFaces](https://primefaces.org/), \n[PrimeFaces Extensions](https://primefaces-extensions.github.io/), \n[Apache MyFaces Tobago](https://github.com/apache/myfaces-tobago), \n[OmniFaces](https://omnifaces.org/), \n[AdminFaces](https://adminfaces.github.io/site/), \n[Mojarra](https://eclipse-ee4j.github.io/mojarra/) and \n[MyFaces](http://myfaces.apache.org) libraries to run at embedded \n[Tomcat](https://tomcat.apache.org/), \n[Jetty](https://www.eclipse.org/jetty) or \n[Undertow](https://undertow.io/). \nIt autoconfigures [Weld](https://weld.cdi-spec.org),\n[Apache OpenWebBeans](https://openwebbeans.apache.org/) and\n[Rewrite](https://www.ocpsoft.org/rewrite/) too.\n\n## Run Example Application locally\n\n1- Clone this project\n```Shell\ngit clone https://github.com/joinfaces/joinfaces-maven-jar-example.git\n```\n\n2- Build\n```Shell\nmvn clean install\n```\n\n3- Run\n```Shell\njava -jar target/joinfaces-example-5.5.x.jar\n```\n\n4- Access starter page at **http://localhost:8080/** This page can help you to choose the JoinFaces Starter that fits your needs. You may log in with credentials\n\n| User       | Password | Roles      |\n|------------|----------|------------|\n| persapiens | 123      | ROLE_ADMIN |\n| nyilmaz    | qwe      | ROLE_USER  |\n\nOptional: If your IDE is showing build errors install [Lombok](https://projectlombok.org/setup/overview)\n\n## Key Files\n\n### pom.xml\n\nIncludes joinfaces starter dependency. All other jsf dependencies are included transitively.\n\n```xml\n\u003cproperties\u003e\n   \u003cjoinfaces.version\u003e5.5.0-m3\u003c/joinfaces.version\u003e\n\u003c/properties\u003e\n\n\u003cdependencyManagement\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.joinfaces\u003c/groupId\u003e\n            \u003cartifactId\u003ejoinfaces-bom\u003c/artifactId\u003e\n            \u003cversion\u003e${joinfaces.version}\u003c/version\u003e\n            \u003ctype\u003epom\u003c/type\u003e\n            \u003cscope\u003eimport\u003c/scope\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/dependencyManagement\u003e\n\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003eorg.joinfaces\u003c/groupId\u003e\n    \u003cartifactId\u003efaces-spring-boot-starter\u003c/artifactId\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nNote that **security-spring-boot-starter** is included to secure the application.\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.joinfaces\u003c/groupId\u003e\n        \u003cartifactId\u003esecurity-spring-boot-starter\u003c/artifactId\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n### src/main/resources/application.yml\n\nConfigure faces.PROJECT_STATE and faces.primefaces.THEME properties.\n\n```yml\njoinfaces:\n  faces:\n    PROJECT_STAGE: Development\n  primefaces: \n    theme: overcast\n```\n\n### src/main/resources/META-INF/resources/content/starter.xhtml\n\nExample page to help you choose the right JoinFaces Starter for you. \n\nNote that xhtml, js, css and images files should be located at **src/main/resources/META-INF/resources** directory to JSF use them.\n\nLook at **authorize** and **anonymous** jsf spring security facelet tags in action to secure page information.\n\n```xhtml\n  \u003csec:authorize access=\"hasRole('ROLE_ADMIN')\"\u003e\n    \u003cp:panelGrid columns=\"1\" rendered=\"#{sec:isFullyAuthenticated()}\"\u003e\n      \u003cp:link title=\"Logout\" href=\"/logout\"\u003e\n        \u003cp:outputLabel value=\"You are logged in as an ADMIN\" /\u003e\n      \u003c/p:link\u003e\n    \u003c/p:panelGrid\u003e\n  \u003c/sec:authorize\u003e\n```\n\n### src/main/java/org/joinfaces/example/JoinFacesExampleApplication.java\n\nVery simple spring main application. Only SpringBootApplication annotation is required.\n\n\u003cpre\u003e\n@SpringBootApplication\npublic class JoinFacesExampleApplication {\n\u003c/pre\u003e\n\n### src/main/java/org/joinfaces/example/SecurityConfig.java\n\nSpring Security configuration class to secure authentication with credentials to persapiens and nyilmaz users.\n\n### src/main/java/org/joinfaces/example/view/StarterMBean.java\n\nManaged bean using ViewScoped CDI annotation. The equivalent spring scope of ViewScoped annotation is configured automatically by JoinFaces Starter.\n\n\u003cpre\u003e\n@Named\n\u003cb\u003e@ViewScoped\u003c/b\u003e\npublic class StarterMBean {\n\u003c/pre\u003e\n\n## Getting Help\n\n* Take a look at [JoinFaces Wiki](https://github.com/joinfaces/joinfaces/wiki).\n* Report questions and bugs at [github.com/joinfaces/joinfaces-example/issues](https://github.com/joinfaces/joinfaces-maven-jar-example/issues).\n\n## Contributing\n\n* Report documentation, features, enhancement and bugs at [github.com/joinfaces/joinfaces-example/issues](https://github.com/joinfaces/joinfaces-maven-jar-example/issues).\n* Pull requests are welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoinfaces%2Fjoinfaces-maven-jar-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoinfaces%2Fjoinfaces-maven-jar-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoinfaces%2Fjoinfaces-maven-jar-example/lists"}