[jira] [Commented] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
[ https://issues.apache.org/jira/browse/TOMEE-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15720510#comment-15720510 ] Romain Manni-Bucau commented on TOMEE-1978: --- Hi [~devnull52], with these system properties no need of any physical tomee.war 1. is normal since you deploy an archive then you need a path 2. is weird and can be a leaking deployments (= previous deployment not cleaned up) What's the goal? Just start tomee with the app? then using mvn package tomee:run is easier probably > JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 > -- > > Key: TOMEE-1978 > URL: https://issues.apache.org/jira/browse/TOMEE-1978 > Project: TomEE > Issue Type: Documentation > Components: TomEE Maven Plugin >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, Java 1.8.0_25, Eclipse Neon, Maven TomEE > Plugin 7.0.2 >Reporter: Dev Null 52 > > I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to deploy a JEE > WAR to a TomEE 7.0.2 running on a seperate JVM process ( not embedded within > Eclipse ). I am am very familiar with tomcat7:deploy task. However equivalent > tomee:deploy fails with different messaged. > 1. If I use as-is, it complains with message: > The parameters 'path' for goal > org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. > 2. If I provide a path within configuration it fails with message: > Caused by: org.apache.openejb.OpenEJBException: Creating application failed: > /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: > addChild: Child name '/jeeexamples##0.0.1' is not unique. > My webapps directory is empty. I had initial difficulties with deployment but > I was able to deploy a tomee.war and able to proceed. Not sure if it helps, > but I have added following based on posts to system.properties ( I dont know > all the implications yet but I have added to go past while I learn more ). > Not sure if I am contributing to the problem. > system.properties > === > tomee.remote.support = true > tomee.serialization.class.whitelist = > tomee.serialization.class.blacklist = > org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process > openejb.system.apps = true > ##tomee.version=7.0.2 > > org.apache.tomee.maven > tomee-maven-plugin > ${tomee.version} > > > ${tomee.version} > plus > > ${tomee.port} > > > Command line usage: > mvn -X -e -file ${PROJECT_LOC}/pom.xml -settings > ~/LOCAL_M2_PATH/.m2/settings.xml clean install tomee:deploy > -Dmaven.test.skip=true -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
[ https://issues.apache.org/jira/browse/TOMEE-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dev Null 52 updated TOMEE-1978: --- Description: I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to deploy a JEE WAR to a TomEE 7.0.2 running on a seperate JVM process ( not embedded within Eclipse ). I am am very familiar with tomcat7:deploy task. However equivalent tomee:deploy fails with different messaged. 1. If I use as-is, it complains with message: The parameters 'path' for goal org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. 2. If I provide a path within configuration it fails with message: Caused by: org.apache.openejb.OpenEJBException: Creating application failed: /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: addChild: Child name '/jeeexamples##0.0.1' is not unique. My webapps directory is empty. I had initial difficulties with deployment but I was able to deploy a tomee.war and able to proceed. Not sure if it helps, but I have added following based on posts to system.properties ( I dont know all the implications yet but I have added to go past while I learn more ). Not sure if I am contributing to the problem. system.properties === tomee.remote.support = true tomee.serialization.class.whitelist = tomee.serialization.class.blacklist = org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process openejb.system.apps = true ##tomee.version=7.0.2 org.apache.tomee.maven tomee-maven-plugin ${tomee.version} ${tomee.version} plus ${tomee.port} Command line usage: mvn -X -e -file ${PROJECT_LOC}/pom.xml -settings ~/LOCAL_M2_PATH/.m2/settings.xml clean install tomee:deploy -Dmaven.test.skip=true was: I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to tomcat7:deploy task. However equivalent tomee:deploy fails. 1. If I use as-is, it complains with message: The parameters 'path' for goal org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. 2. If I provide a path it fails with message: Caused by: org.apache.openejb.OpenEJBException: Creating application failed: /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: addChild: Child name '/jeeexamples##0.0.1' is not unique. My webapps directory is empty. I had initial difficulties with deployment but I was able to deploy a tomee.war and able to proceed. Not sure if it helps, but I have added following based on posts to system.properties ( I dont know all the implications yet but I have added to go past while I learn more ). Not sure if I am contributing to the problem. system.properties === tomee.remote.support = true tomee.serialization.class.whitelist = tomee.serialization.class.blacklist = org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process openejb.system.apps = true ##tomee.version=7.0.2 org.apache.tomee.maven tomee-maven-plugin ${tomee.version} ${tomee.version} plus ${tomee.port} Command line usage: mvn -X -e -file ${PROJECT_LOC}/pom.xml -settings ~/LOCAL_M2_PATH/.m2/settings.xml clean install tomee:deploy -Dmaven.test.skip=true > JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 > -- > > Key: TOMEE-1978 > URL: https://issues.apache.org/jira/browse/TOMEE-1978 > Project: TomEE > Issue Type: Documentation > Components: TomEE Maven Plugin >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, Java 1.8.0_25, Eclipse Neon, Maven TomEE > Plugin 7.0.2 >Reporter: Dev Null 52 > > I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to deploy a JEE > WAR to a TomEE 7.0.2 running on a seperate JVM process ( not embedded within > Eclipse ). I am am very familiar with tomcat7:deploy task. However equivalent > tomee:deploy fails with different messaged. > 1. If I use as-is, it complains with message: > The parameters 'path' for goal > org.apache.tomee.maven:tomee-maven-plugin:7.0.2:d
[jira] [Reopened] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
[ https://issues.apache.org/jira/browse/TOMEE-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dev Null 52 reopened TOMEE-1978: Sorry I cloned 1977 as I could not find link to create a new issue and therefore showing up as reopened. > JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 > -- > > Key: TOMEE-1978 > URL: https://issues.apache.org/jira/browse/TOMEE-1978 > Project: TomEE > Issue Type: Documentation > Components: TomEE Maven Plugin >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, Java 1.8.0_25, Eclipse Neon, Maven TomEE > Plugin 7.0.2 >Reporter: Dev Null 52 > > I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate > TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to > tomcat7:deploy task. However equivalent tomee:deploy fails. > 1. If I use as-is, it complains with message: > The parameters 'path' for goal > org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. > 2. If I provide a path it fails with message: > Caused by: org.apache.openejb.OpenEJBException: Creating application failed: > /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: > addChild: Child name '/jeeexamples##0.0.1' is not unique. > My webapps directory is empty. I had initial difficulties with deployment but > I was able to deploy a tomee.war and able to proceed. Not sure if it helps, > but I have added following based on posts to system.properties ( I dont know > all the implications yet but I have added to go past while I learn more ). > Not sure if I am contributing to the problem. > system.properties > === > tomee.remote.support = true > tomee.serialization.class.whitelist = > tomee.serialization.class.blacklist = > org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process > openejb.system.apps = true > ##tomee.version=7.0.2 > > org.apache.tomee.maven > tomee-maven-plugin > ${tomee.version} > > > ${tomee.version} > plus > > ${tomee.port} > > > Command line usage: > mvn -X -e -file ${PROJECT_LOC}/pom.xml -settings > ~/LOCAL_M2_PATH/.m2/settings.xml clean install tomee:deploy > -Dmaven.test.skip=true -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
[ https://issues.apache.org/jira/browse/TOMEE-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dev Null 52 updated TOMEE-1978: --- Description: I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to tomcat7:deploy task. However equivalent tomee:deploy fails. 1. If I use as-is, it complains with message: The parameters 'path' for goal org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. 2. If I provide a path it fails with message: Caused by: org.apache.openejb.OpenEJBException: Creating application failed: /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: addChild: Child name '/jeeexamples##0.0.1' is not unique. My webapps directory is empty. I had initial difficulties with deployment but I was able to deploy a tomee.war and able to proceed. Not sure if it helps, but I have added following based on posts to system.properties ( I dont know all the implications yet but I have added to go past while I learn more ). Not sure if I am contributing to the problem. system.properties === tomee.remote.support = true tomee.serialization.class.whitelist = tomee.serialization.class.blacklist = org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process openejb.system.apps = true ##tomee.version=7.0.2 org.apache.tomee.maven tomee-maven-plugin ${tomee.version} ${tomee.version} plus ${tomee.port} Command line usage: mvn -X -e -file ${PROJECT_LOC}/pom.xml -settings ~/LOCAL_M2_PATH/.m2/settings.xml clean install tomee:deploy -Dmaven.test.skip=true was: I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to tomcat7:deploy task. However equivalent tomee:deploy fails. 1. If I use as-is, it complains with message: The parameters 'path' for goal org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. 2. If I provide a path it fails with message: Caused by: org.apache.openejb.OpenEJBException: Creating application failed: /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: addChild: Child name '/jeeexamples##0.0.1' is not unique. My webapps directory is empty. I had initial difficulties with deployment but I was able to deploy a tomee.war and able to proceed. Not sure if it helps, but I have added following based on posts to system.properties ( I dont know all the implications yet but I have added to go past while I learn more ). Not sure if I am contributing to the problem. system.properties === tomee.remote.support = true tomee.serialization.class.whitelist = tomee.serialization.class.blacklist = org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process openejb.system.apps = true ##tomee.version=7.0.2 org.apache.tomee.maven tomee-maven-plugin ${tomee.version} ${tomee.version} plus ${tomee.port} > JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 > -- > > Key: TOMEE-1978 > URL: https://issues.apache.org/jira/browse/TOMEE-1978 > Project: TomEE > Issue Type: Documentation > Components: TomEE Maven Plugin >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, Java 1.8.0_25, Eclipse Neon, Maven TomEE > Plugin 7.0.2 >Reporter: Dev Null 52 > > I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate > TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to > tomcat7:deploy task. However equivalent tomee:deploy fails. > 1. If I use as-is, it complains with message: > The parameters 'path' for goal > org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. > 2. If I provide a path it fails with message: > Caused by: org.apache.openejb.OpenEJBException: Creating application failed: > /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: > addChild: Child name '/jeeexamples##0.0.1' is not unique. > My webapps directory is emp
[jira] [Updated] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
[ https://issues.apache.org/jira/browse/TOMEE-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dev Null 52 updated TOMEE-1978: --- Environment: Mac OS Sierra, Java 1.8.0_25, Eclipse Neon, Maven TomEE Plugin 7.0.2 (was: Mac OS Sierra, ) Priority: Major (was: Trivial) Description: I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to tomcat7:deploy task. However equivalent tomee:deploy fails. 1. If I use as-is, it complains with message: The parameters 'path' for goal org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. 2. If I provide a path it fails with message: Caused by: org.apache.openejb.OpenEJBException: Creating application failed: /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: addChild: Child name '/jeeexamples##0.0.1' is not unique. My webapps directory is empty. I had initial difficulties with deployment but I was able to deploy a tomee.war and able to proceed. Not sure if it helps, but I have added following based on posts to system.properties ( I dont know all the implications yet but I have added to go past while I learn more ). Not sure if I am contributing to the problem. system.properties === tomee.remote.support = true tomee.serialization.class.whitelist = tomee.serialization.class.blacklist = org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process openejb.system.apps = true ##tomee.version=7.0.2 org.apache.tomee.maven tomee-maven-plugin ${tomee.version} ${tomee.version} plus ${tomee.port} was: I have been trying for couple of days to have a trivial MDB example working to listen on ActiveMQ Queue on default port. I am using TomEE 7.0.2. I tried first using an embedded Active MQ 5.2.0 broker, then moved it as a stand alone process using activemq-maven-plugin plugin to rule out Active MQ out as a variable.I tried MDB with annotation using activation config, without annotation but no avail. Examples online vary and none of them appear to work. I am able to send to the Queue using a seperate Servlet and able to validate then but not able to read. Also I am seeing very strange Auto-linking resource-ref logs whereby I see injections for Beans that do not have those instances/types defined -- so very confused. Plain JMS and EJB worked like a charm on JEE. Using Maven META-INF/beans.xml ( empty ) META-INF/ejb-jar.xml ( MDB and basic EJB descriptor ) WEB-INF/resources.xml (ConnectionFactory and Queue definition pointing to localhost ActiveMQ on default port ). WEB-INF/web.xml ( empty ) Please help if possible. Component/s: (was: TomEE Core Server) TomEE Maven Plugin > JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 > -- > > Key: TOMEE-1978 > URL: https://issues.apache.org/jira/browse/TOMEE-1978 > Project: TomEE > Issue Type: Documentation > Components: TomEE Maven Plugin >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, Java 1.8.0_25, Eclipse Neon, Maven TomEE > Plugin 7.0.2 >Reporter: Dev Null 52 > > I am using TommEE org.apache.tomee.maven plugin version 7.0.2 to a seperate > TomEE 7.0.2 JVM process ( not embedded within Eclipse ). I am used to > tomcat7:deploy task. However equivalent tomee:deploy fails. > 1. If I use as-is, it complains with message: > The parameters 'path' for goal > org.apache.tomee.maven:tomee-maven-plugin:7.0.2:deploy are missing or invalid. > 2. If I provide a path it fails with message: > Caused by: org.apache.openejb.OpenEJBException: Creating application failed: > /LOCAL_FS_PATH/Eclipse/workspace/jee-examples/target/jeeexamples##0.0.1: > addChild: Child name '/jeeexamples##0.0.1' is not unique. > My webapps directory is empty. I had initial difficulties with deployment but > I was able to deploy a tomee.war and able to proceed. Not sure if it helps, > but I have added following based on posts to system.properties ( I dont know > all the implications yet but I have added to go past while I learn more ). > Not sure if I am contributing to the problem. > system.properties > === > tomee.remote.support = true > tomee.serialization.class.whitelist = > tomee.serialization.class.blacklist = > org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process > openejb.syste
[jira] [Resolved] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
[ https://issues.apache.org/jira/browse/TOMEE-1978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Romain Manni-Bucau resolved TOMEE-1978. --- Resolution: Duplicate > JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 > -- > > Key: TOMEE-1978 > URL: https://issues.apache.org/jira/browse/TOMEE-1978 > Project: TomEE > Issue Type: Documentation > Components: TomEE Core Server >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, >Reporter: Dev Null 52 >Priority: Trivial > > I have been trying for couple of days to have a trivial MDB example working > to listen on ActiveMQ Queue on default port. I am using TomEE 7.0.2. > I tried first using an embedded Active MQ 5.2.0 broker, then moved it as a > stand alone process using activemq-maven-plugin plugin to rule out Active MQ > out as a variable.I tried MDB with annotation using activation config, > without annotation but no avail. Examples online vary and none of them appear > to work. I am able to send to the Queue using a seperate Servlet and able to > validate then but not able to read. > Also I am seeing very strange Auto-linking resource-ref logs whereby I see > injections for Beans that do not have those instances/types defined -- so > very confused. > Plain JMS and EJB worked like a charm on JEE. Using Maven > META-INF/beans.xml ( empty ) > META-INF/ejb-jar.xml ( MDB and basic EJB descriptor ) > WEB-INF/resources.xml (ConnectionFactory and Queue definition pointing to > localhost ActiveMQ on default port ). > WEB-INF/web.xml ( empty ) > Please help if possible. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (TOMEE-1978) JEE WAR not getting deployed with tomee-maven-plugin 7.0.2
Dev Null 52 created TOMEE-1978: -- Summary: JEE WAR not getting deployed with tomee-maven-plugin 7.0.2 Key: TOMEE-1978 URL: https://issues.apache.org/jira/browse/TOMEE-1978 Project: TomEE Issue Type: Documentation Components: TomEE Core Server Affects Versions: 7.0.2 Environment: Mac OS Sierra, Reporter: Dev Null 52 Priority: Trivial I have been trying for couple of days to have a trivial MDB example working to listen on ActiveMQ Queue on default port. I am using TomEE 7.0.2. I tried first using an embedded Active MQ 5.2.0 broker, then moved it as a stand alone process using activemq-maven-plugin plugin to rule out Active MQ out as a variable.I tried MDB with annotation using activation config, without annotation but no avail. Examples online vary and none of them appear to work. I am able to send to the Queue using a seperate Servlet and able to validate then but not able to read. Also I am seeing very strange Auto-linking resource-ref logs whereby I see injections for Beans that do not have those instances/types defined -- so very confused. Plain JMS and EJB worked like a charm on JEE. Using Maven META-INF/beans.xml ( empty ) META-INF/ejb-jar.xml ( MDB and basic EJB descriptor ) WEB-INF/resources.xml (ConnectionFactory and Queue definition pointing to localhost ActiveMQ on default port ). WEB-INF/web.xml ( empty ) Please help if possible. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
svn commit: r1772523 - /tomee/site/trunk/content/index.html
Author: rmannibucau Date: Sun Dec 4 11:04:41 2016 New Revision: 1772523 URL: http://svn.apache.org/viewvc?rev=1772523&view=rev Log: adding index Added: tomee/site/trunk/content/index.html Added: tomee/site/trunk/content/index.html URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/index.html?rev=1772523&view=auto == --- tomee/site/trunk/content/index.html (added) +++ tomee/site/trunk/content/index.html Sun Dec 4 11:04:41 2016 @@ -0,0 +1,219 @@ + + + + + + + + Apache TomEE + + + + + + + + + + + + + + + + + + + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-2717626-1']); + _gaq.push(['_setDomainName', 'apache.org']); + _gaq.push(['_trackPageview']); + + (function() { +var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; +ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; +var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + + + + + + + + + + + + + + Toggle navigation + + + + + + + + + + + + + Apache TomEE + + + + + + Developer + Admin + Advanced + Security + Examples + Blog + Community +Downloads + + + + + + + + + + + + + + +Apache TomEE + + +Embedded or distributed as you prefer. +| + + + + + + + + + + + + + +TomEE for administrators + +I'm an admin +Learn more... + + + + + + TomEE for developers + + I'm a developer + Learn more... + + + + + +Advanced usages + +Too easy, let's go further +Learn more... + + + + + + + + + + + + Apache TomEE the little great server. + "A good application in a good server" + + https://fr-fr.facebook.com/ApacheTomEE/";> + https://twitter.com/apachetomee";> + https://plus.google.com/communities/105208241852045684449";> + + + + + + Administrati
svn commit: r1772522 [19/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.svg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.svg?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.svg (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.svg Sun Dec 4 11:01:40 2016 @@ -0,0 +1,1832 @@ + +http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"; > +http://www.w3.org/2000/svg";> + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
svn commit: r1772522 [39/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/rest-cdi.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/rest-cdi.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/rest-cdi.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/rest-cdi.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,394 @@ += Simple REST with CDI +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example rest-cdi can be browsed at https://github.com/apache/tomee/tree/master/examples/rest-cdi + + +Defining a REST service is pretty easy, simply ad @Path annotation to a class then define on methods +the HTTP method to use (@GET, @POST, ...). + += The Code + +== The REST service: @Path, @Produces, @Consumes + +Here we see a bean that uses the Bean-Managed Concurrency option as well as the @Startup annotation which causes the bean to be instantiated by the container when the application starts. Singleton beans with @ConcurrencyManagement(BEAN) are responsible for their own thread-safety. The bean shown is a simple properties "registry" and provides a place where options could be set and retrieved by all beans in the application. + +Actually lines: + + +[source,java] + +@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) +@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + +are optional since it is the default configuration. And these lines can be configured by method too +if you need to be more precise. + +@Path("/greeting") +@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) +@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) +public class GreetingService { +@GET +public Response message() { +return new Response("Hi REST!"); +} + +@POST +public Response lowerCase(final Request message) { +return new Response(message.getValue().toLowerCase()); +} +} + + + += Testing + +== Test for the JAXRS service + +The test uses the OpenEJB ApplicationComposer to make it trivial. + +The idea is first to activate the jaxrs services. This is done using @EnableServices annotation. + +Then we create on the fly the application simply returning an object representing the web.xml. Here we simply +use it to define the context root but you can use it to define your REST Application too. And to complete the +application definition we add @Classes annotation to define the set of classes to use in this app. + +Finally to test it we use cxf client API to call the REST service in get() and post() methods. + +Side note: to show we use JSON or XML depending on the test method we activated on EnableServices the attribute httpDebug +which prints the http messages in the logs. + + +[source,java] + +package org.superbiz.rest; + +import org.apache.cxf.jaxrs.client.WebClient; +import org.apache.openejb.jee.WebApp; +import org.apache.openejb.junit.ApplicationComposer; +import org.apache.openejb.junit.Classes; +import org.apache.openejb.junit.EnableServices; +import org.apache.openejb.junit.Module; +import org.junit.Test; +import org.junit.runner.RunWith; + +import javax.ws.rs.core.MediaType; +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +@EnableServices(value = "jaxrs", httpDebug = true) +@RunWith(ApplicationComposer.class) +public class GreetingServiceTest { +@Module +@Classes(value = {GreetingService.class, Greeting.class}, cdi = true) //This enables the CDI magic +public WebApp app() { +return new WebApp().contextRoot("test"); +} + +@Test +public void getXml() throws IOException { +final String message = WebClient.create("http://localhost:4204";).path("/test/greeting/") +.accept(MediaType.APPLICATION_XML_TYPE) +.get(Response.class).getValue(); +assertEquals("Hi REST!", message); +} + +@Test +public void postXml() throws IOException { +final String message = WebClient.create("http://localhost:4204";).path("/test/greeting/") +.accept(MediaType.APPLICATION_XML_TYPE) +.post(new Request("Hi REST!"), Response.class).getValue(); +assertEquals("hi rest!", message); +} + +@Test +public void getJson() throws IOException { +final String message = WebClient.create("http://localhost:4204";).path("/test/greeting/") +.accept(MediaType.APPLICATION_JSON_TYPE) +.get(Response.class).getValue(); +assertEquals("Hi REST!", message); +} + +@Test +public void postJson() throws IOException { +final String message = WebClient.create("http://localhost:4204";).path("/test/greeting/") +.accept(Med
svn commit: r1772522 [23/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/jquery-1.11.1.min.js URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/jquery-1.11.1.min.js?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/jquery-1.11.1.min.js (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/jquery-1.11.1.min.js Sun Dec 4 11:01:40 2016 @@ -0,0 +1,4 @@ +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,argumen ts))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a= =a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d ===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(ar guments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.i
svn commit: r1772522 [32/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/bean-validation-design-by-contract.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/bean-validation-design-by-contract.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/bean-validation-design-by-contract.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/bean-validation-design-by-contract.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,240 @@ += bean-validation-design-by-contract +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example bean-validation-design-by-contract can be browsed at https://github.com/apache/tomee/tree/master/examples/bean-validation-design-by-contract + += Bean Validation - Design By Contract + +Bean Validation (aka JSR 303) contains an optional appendix dealing with method validation. + +Some implementions of this JSR implement this appendix (Apache bval, Hibernate validator for example). + +OpenEJB provides an interceptor which allows you to use this feature to do design by contract. + += Design by contract + +The goal is to be able to configure with a finer grain your contract. In the example you specify +the minimum centimeters a sport man should jump at pole vaulting: + + +[source,java] + +@Local +public interface PoleVaultingManager { +int points(@Min(120) int centimeters); +} + + + += Usage + +TomEE and OpenEJB do not provide anymore `BeanValidationAppendixInterceptor` since +Bean Validation 1.1 does it (with a slighly different usage but the exact same feature). + +So basically you don't need to configure anything to use it. += Errors + +If a parameter is not validated an exception is thrown, it is an EJBException wrapping a ConstraintViolationException: + +try { +gamesManager.addSportMan("I lose", "EN"); +fail("no space should be in names"); +} catch (EJBException wrappingException) { +assertTrue(wrappingException.getCause() instanceof ConstraintViolationException); +ConstraintViolationException exception = ConstraintViolationException.class.cast(wrappingException.getCausedByException()); +assertEquals(1, exception.getConstraintViolations().size()); +} + += Example + +== OlympicGamesManager + + +[source,java] + +package org.superbiz.designbycontract; + +import javax.ejb.Stateless; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; + +@Stateless +public class OlympicGamesManager { +public String addSportMan(@Pattern(regexp = "^[A-Za-z]+$") String name, @Size(min = 2, max = 4) String country) { +if (country.equals("USA")) { +return null; +} +return new StringBuilder(name).append(" [").append(country).append("]").toString(); +} +} + + + +== PoleVaultingManager + + +[source,java] + +package org.superbiz.designbycontract; + +import javax.ejb.Local; +import javax.validation.constraints.Min; + +@Local +public interface PoleVaultingManager { +int points(@Min(120) int centimeters); +} + + + +== PoleVaultingManagerBean + + +[source,java] + +package org.superbiz.designbycontract; + +import javax.ejb.Stateless; + +@Stateless +public class PoleVaultingManagerBean implements PoleVaultingManager { +@Override +public int points(int centimeters) { +return centimeters - 120; +} +} + + + +== OlympicGamesTest + + +[source,java] + +public class OlympicGamesTest { +private static Context context; + +@EJB +private OlympicGamesManager gamesManager; + +@EJB +private PoleVaultingManager poleVaultingManager; + +@BeforeClass +public static void start() { +Properties properties = new Properties(); +properties.setProperty(BeanContext.USER_INTERCEPTOR_KEY, BeanValidationAppendixInterceptor.class.getName()); +context = EJBContainer.createEJBContainer(properties).getContext(); +} + +@Before +public void inject() throws Exception { +context.bind("inject", this); +} + +@AfterClass +public static void stop() throws Exception { +if (context != null) { +context.close(); +} +} + +@Test +public void sportMenOk() throws Exception { +assertEquals("IWin [FR]", gamesManager.addSportMan("IWin", "FR")); +} + +@Test +public void sportMenKoBecauseOfName() throws Exception { +try { +gamesManager.addSportMan("I lose", "EN"); +fail("no space should be in names"); +} catch (EJBException wrappingException) { +assertTrue(wrappingException.getCause() instanceof ConstraintViolationException); +ConstraintViolati
svn commit: r1772522 [33/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/component-interfaces.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/component-interfaces.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/component-interfaces.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/component-interfaces.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,497 @@ += Component Interfaces +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example component-interfaces can be browsed at https://github.com/apache/tomee/tree/master/examples/component-interfaces + + +*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* + +== FriendlyPerson + + +[source,java] + +package org.superbiz; + +import javax.ejb.Init; +import javax.ejb.Local; +import javax.ejb.LocalHome; +import javax.ejb.Remote; +import javax.ejb.RemoteHome; +import javax.ejb.Remove; +import javax.ejb.Stateful; +import java.text.MessageFormat; +import java.util.HashMap; +import java.util.Locale; +import java.util.Properties; + +/** + * This is an EJB 3 style pojo stateful session bean + * it does not need to implement javax.ejb.SessionBean + * + */ +//START SNIPPET: code + +// EJB 3.0 Style business interfaces +// Each of these interfaces are already annotated in the classes +// themselves with @Remote and @Local, so annotating them here +// in the bean class again is not really required. +@Remote({FriendlyPersonRemote.class}) +@Local({FriendlyPersonLocal.class}) + +// EJB 2.1 Style component interfaces +// These interfaces, however, must be annotated here in the bean class. +// Use of @RemoteHome in the FriendlyPersonEjbHome class itself is not allowed. +// Use of @LocalHome in the FriendlyPersonEjbLocalHome class itself is also not allowed. +@RemoteHome(FriendlyPersonEjbHome.class) +@LocalHome(FriendlyPersonEjbLocalHome.class) + +@Stateful +public class FriendlyPerson implements FriendlyPersonLocal, FriendlyPersonRemote { + +private final HashMap greetings; +private final Properties languagePreferences; + +private String defaultLanguage; + +public FriendlyPerson() { +greetings = new HashMap(); +languagePreferences = new Properties(); +defaultLanguage = Locale.getDefault().getLanguage(); + +addGreeting("en", "Hello {0}!"); +addGreeting("es", "Hola {0}!"); +addGreeting("fr", "Bonjour {0}!"); +addGreeting("pl", "Witaj {0}!"); +} + +/** + * This method corresponds to the FriendlyPersonEjbHome.create() method + * and the FriendlyPersonEjbLocalHome.create() + * + * If you do not have an EJBHome or EJBLocalHome interface, this method + * can be deleted. + */ +@Init +public void create() { +} + +/** + * This method corresponds to the following methods: + * - EJBObject.remove() + * - EJBHome.remove(ejbObject) + * - EJBLocalObject.remove() + * - EJBLocalHome.remove(ejbObject) + * + * If you do not have an EJBHome or EJBLocalHome interface, this method + * can be deleted. + */ +@Remove +public void remove() { +} + +public String greet(String friend) { +String language = languagePreferences.getProperty(friend, defaultLanguage); +return greet(language, friend); +} + +public String greet(String language, String friend) { +MessageFormat greeting = greetings.get(language); +if (greeting == null) { +Locale locale = new Locale(language); +return "Sorry, I don't speak " + locale.getDisplayLanguage() + "."; +} + +return greeting.format(new Object[]{friend}); +} + +public void addGreeting(String language, String message) { +greetings.put(language, new MessageFormat(message)); +} + +public void setLanguagePreferences(String friend, String language) { +languagePreferences.put(friend, language); +} + +public String getDefaultLanguage() { +return defaultLanguage; +} + +public void setDefaultLanguage(String defaultLanguage) { +this.defaultLanguage = defaultLanguage; +} +} + + + +== FriendlyPersonEjbHome + + +[source,java] + +package org.superbiz; + +//START SNIPPET: code + +import javax.ejb.CreateException; +import javax.ejb.EJBHome; +import java.rmi.RemoteException; + +public interface FriendlyPersonEjbHome extends EJBHome { +FriendlyPersonEjbObject create() throws CreateException, RemoteException; +} + + + +== FriendlyPersonEjbLocalHome + + +[source,java] + +package org.superbiz; + +//START SNIPPET: code + +import javax.ejb.CreateException; +import javax.ejb.EJBLocalHome; +import java.rmi.RemoteException; + +p
svn commit: r1772522 [36/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/injection-of-env-entry.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/injection-of-env-entry.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/injection-of-env-entry.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/injection-of-env-entry.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,271 @@ += Using EnvEntries +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example injection-of-env-entry can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-of-env-entry + + +The `@Resource` annotation can be used to inject several things including +DataSources, Topics, Queues, etc. Most of these are container supplied objects. + +It is possible, however, to supply your own values to be injected via an `` +in your `ejb-jar.xml` or `web.xml` deployment descriptor. Java EE 6 supported `` types +are limited to the following: + + - java.lang.String + - java.lang.Integer + - java.lang.Short + - java.lang.Float + - java.lang.Double + - java.lang.Byte + - java.lang.Character + - java.lang.Boolean + - java.lang.Class + - java.lang.Enum (any enum) + +See also the link:../custom-injection[Custom Injection] exmaple for a TomEE and OpenEJB feature that will let you +use more than just the above types as well as declare `` items with a plain properties file. + += Using @Resource for basic properties + +The use of the `@Resource` annotation isn't limited to setters. For +example, this annotation could have been used on the corresponding *field* +like so: + + +[source,java] + +@Resource +private int maxLineItems; + +A fuller example might look like this: + +package org.superbiz.injection.enventry; + +import javax.annotation.Resource; +import javax.ejb.Singleton; +import java.util.Date; + +@Singleton +public class Configuration { + +@Resource +private String color; + +@Resource +private Shape shape; + +@Resource +private Class strategy; + +@Resource(name = "date") +private long date; + +public String getColor() { +return color; +} + +public Shape getShape() { +return shape; +} + +public Class getStrategy() { +return strategy; +} + +public Date getDate() { +return new Date(date); +} +} + + + +Here we have an `@Singleton` bean called `Confuration` that has the following properties (`` items) + +- String color +- Shape shape +- Class strategy +- long date + +== Supplying @Resource values for items in ejb-jar.xml + +The values for our `color`, `shape`, `strategy` and `date` properties are supplied via `` elements in the `ejb-jar.xml` file or the +`web.xml` file like so: + + + +[source,xml] + +http://java.sun.com/xml/ns/javaee"; version="3.0" metadata-complete="false"> + + + Configuration + + org.superbiz.injection.enventry.Configuration/color +java.lang.String +orange + + + org.superbiz.injection.enventry.Configuration/shape +org.superbiz.injection.enventry.Shape +TRIANGLE + + + org.superbiz.injection.enventry.Configuration/strategy +java.lang.Class + org.superbiz.injection.enventry.Widget + + +The name was explicitly set in the annotation so the classname prefix isn't required +date +java.lang.Long +123456789 + + + + + + + + +=== Using the @Resource 'name' attribute + +Note that `date` was referenced by `name` as: + + +[source,java] + +@Resource(name = "date") +private long date; + +When the `@Resource(name)` is used, you do not need to specify the full class name of the bean and can do it briefly like so: + + +The name was explicitly set in the annotation so the classname prefix isn't required +date +java.lang.Long +123456789 + + +Conversly, `color` was not referenced by `name` + +@Resource +private String color; + +When something is not referenced by `name` in the `@Resource` annotation a default name is created. The format is essentially this: + +bean.getClass() + "/" + field.getName() + +So the default `name` of the above `color` property ends up being `org.superbiz.injection.enventry.Configuration/color`. This is the name +we must use when we attempt to decalre a value for it in xml. + + + org.superbiz.injection.enventry.Configuration/color +java.lang.String +orange + + +### @Resource and Enum (Enumerations) + +The `shape` field is actually a custom Java Enum type + +package org.superbiz.injection.enventry; + +public enum Shape { + +CIRCLE, +TRIANGLE, +SQUARE +} + + + +As of Java EE 6, java.lang.Enu
svn commit: r1772522 [25/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/tree.jquery.js URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/tree.jquery.js?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/tree.jquery.js (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/tree.jquery.js Sun Dec 4 11:01:40 2016 @@ -0,0 +1,3542 @@ +/* +JqTree 1.3.2 + +Copyright 2015 Marco Braak + +Licensed 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. +*/ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o dimensions.right || y > dimensions.bottom) { + return null; +} +low = 0; +high = this.hit_areas.length; +while (low < high) { + mid = (low + high) >> 1; + area = this.hit_areas[mid]; + if (y < area.top) { +high = mid; + } else if (y > area.bottom) { +low = mid + 1; + } else { +return area; + } +} +return null; + }; + + DragAndDropHandler.prototype.mustOpenFolderTimer = function(area) { +var node; +node = area.node; +return node.isFolder() && !node.is_open && area.position === Position.INSIDE; + }; + + DragAndDropHandler.prototype.updateDropHint = function() { +var node_element; +if (!this.hovered_area) { + return; +} +this.removeDropHint(); +node_element = this.tree_widget._getNodeElementForNode(this.hovered_area.node); +return this.previous_ghost = node_element.addDropHint(this.hovered_area.position); + }; + + DragAndDropHandler.prototype.startOpenFolderTimer = function(folder) { +var openFolder; +openFolder = (function(_this) { + return function() { +return _this.tree_widget._openNode(folder, _this.tree_widget.options.slide, function() { + _this.refresh(); + return _this.updateDropHint(); +}); + }; +})(this); +this.stopOpenFolderTimer(); +return this.open_folder_timer = setTimeout(openFolder, this.tree_widget.options.openFolderDelay); + }; + + DragAndDropHandler.prototype.stopOpenFolderTimer = function() { +if (this.open_folder_timer) { + clearTimeout(this.open_folder_timer); + return this.open_folder_timer = null; +} + }; + + DragAndDropHandler.prototype.moveItem = function(position_info) { +var doMove, event, moved_node, position, previous_parent, target_node; +if (this.hovered_area && this.hovered_area.position !== Position.NONE && this.canMoveToArea(this.hovered_area)) { + moved_node = this.current_item.node; + target_node = this.hovered_area.node; + position = this.hovered_area.position; + previous_parent = moved_node.parent; + if (position === Position.INSIDE) { +this.hovered_area.node.is_open = true; + } + doMove = (function(_this) { +return function() { + _this.tree_widget.tree.moveNode(moved_node, target_node, position); + _this.tree_widget.element.empty(); + return _this.tree_widget._refreshElements(); +}; + })(this); + event = this.tree_widget._triggerEvent('tree.move', { +move_info: { + moved_node: moved_node, + target_node: target_node, + position: Position.getName(position), + previous_parent: previous_parent, + do_move: doMove, + original_event: position_info.original_event +} + }); + if (!event.isDefaultPrevented()) { +return doMove(); + } +} + }; + + DragAndDropHandler.prototype.getTreeDimensions = function() { +var offset; +offset = this.tree_widget.element.offset(); +return { + left: offset.left, + top: offset.top, + right: offset.left + this.tree_widget.element.width(), + bottom: offset.top + this.tree_widget.element.height() + 16 +}; + }; + + return DragAndDropHandler; + +})(); + +VisibleNodeIterator = (function() { + function VisibleNodeIterator(tree) { +this.tree = tree; + } + + VisibleNodeIterator.prototype
svn commit: r1772522 [40/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/schedule-events.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/schedule-events.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/schedule-events.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/schedule-events.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,185 @@ += Schedule CDI Events +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example schedule-events can be browsed at https://github.com/apache/tomee/tree/master/examples/schedule-events + + +This example uses a nice CDI/EJB combination to schedule CDI Events. This is useful if you want CDI Events that fire regularly or at a specific time or calendar date. + +Effectively this is a simple wrapper around the `BeanManager.fireEvent(Object,Annotations...)` method that adds `ScheduleExpression` into the mix. + +== ScheduleExpression and @Timeout + +The logic here is simple, we effecitvely expose a method identical to `BeanManager.fireEvent(Object, Annotations...)` and wrap it as `scheduleEvent(ScheduleExpression, Object, Annotation...)` + +To do that we use the EJB `TimerService` (under the covers this is Quartz) and create an `@Timeout` method which will be run when the `ScheduleExpression` activates. + +The `@Timeout` method, simply called `timeout`, takes the event and fires it. + + +[source,java] + +@Singleton +@Lock(LockType.READ) +public class Scheduler { + +@Resource +private TimerService timerService; + +@Resource +private BeanManager beanManager; + +public void scheduleEvent(ScheduleExpression schedule, Object event, Annotation... qualifiers) { + +timerService.createCalendarTimer(schedule, new TimerConfig(new EventConfig(event, qualifiers), false)); +} + +@Timeout +private void timeout(Timer timer) { +final EventConfig config = (EventConfig) timer.getInfo(); + +beanManager.fireEvent(config.getEvent(), config.getQualifiers()); +} + +// Doesn't actually need to be serializable, just has to implement it +private final class EventConfig implements Serializable { + +private final Object event; +private final Annotation[] qualifiers; + +private EventConfig(Object event, Annotation[] qualifiers) { +this.event = event; +this.qualifiers = qualifiers; +} + +public Object getEvent() { +return event; +} + +public Annotation[] getQualifiers() { +return qualifiers; +} +} +} + + + +Then to use it, have `Scheduler` injected as an EJB and enjoy. + + +[source,java] + +public class SomeBean { + +@EJB +private Scheduler scheduler; + +public void doit() throws Exception { + +// every five minutes +final ScheduleExpression schedule = new ScheduleExpression() +.hour("*") +.minute("*") +.second("*/5"); + +scheduler.scheduleEvent(schedule, new TestEvent("five")); +} + +/** + * Event will fire every five minutes + */ +public void observe(@Observes TestEvent event) { +// process the event +} + +} + + + +== Test Case + +A working test case for the above would be as follows: + + +[source,java] + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import javax.ejb.AccessTimeout; +import javax.ejb.EJB; +import javax.ejb.ScheduleExpression; +import javax.ejb.embeddable.EJBContainer; +import javax.enterprise.event.Observes; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +/** + * @version $Revision$ $Date$ + */ +public class SchedulerTest { + +public static final CountDownLatch events = new CountDownLatch(3); + +@EJB +private Scheduler scheduler; + +@Test +public void test() throws Exception { + +final ScheduleExpression schedule = new ScheduleExpression() +.hour("*") +.minute("*") +.second("*/5"); + +scheduler.scheduleEvent(schedule, new TestEvent("five")); + +Assert.assertTrue(events.await(1, TimeUnit.MINUTES)); +} + + +@AccessTimeout(value = 1, unit = TimeUnit.MINUTES) +public void observe(@Observes TestEvent event) { +if ("five".equals(event.getMessage())) { +events.countDown(); +} +} + +public static class TestEvent { +private final String message; + +public TestEvent(String message) { +this.message = message; +} + +public String getMessage() { +return message; +} +} + +@Before +public void setup() throws Excepti
svn commit: r1772522 [26/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/tree.jquery.js -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/typeahead.bundle.min.js URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/typeahead.bundle.min.js?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/typeahead.bundle.min.js (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/typeahead.bundle.min.js Sun Dec 4 11:01:40 2016 @@ -0,0 +1,8 @@ +/*! + * typeahead.js 0.11.1 + * https://github.com/twitter/typeahead.js + * Copyright 2013-2015 Twitter, Inc. and other contributors; Licensed MIT + */ + +!function(a,b){"function"==typeof define&&define.amd?define("bloodhound",["jquery"],function(c){return a.Bloodhound=b(c)}):"object"==typeof exports?module.exports=b(require("jquery")):a.Bloodhound=b(jQuery)}(this,function(a){var b=function(){"use strict";return{isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},isBlankString:function(a){return!a||/^\s*$/.test(a)},escapeRegExChars:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(a){return"string"==typeof a},isNumber:function(a){return"number"==typeof a},isArray:a.isArray,isFunction:a.isFunction,isObject:a.isPlainObject,isUndefined:function(a){return"undefined"==typeof a},isElement:function(a){return!(!a||1!==a.nodeType)},isJQuery:function(b){return b instanceof a},toStr:function(a){return b.isUndefined(a)||null===a?"":a+""},bind:a.proxy,each:function(b,c){function d(a,b){return c(b,a)}a.each(b,d)},map:a.map,filte r:a.grep,every:function(b,c){var d=!0;return b?(a.each(b,function(a,e){return(d=c.call(null,e,a,b))?void 0:!1}),!!d):d},some:function(b,c){var d=!1;return b?(a.each(b,function(a,e){return(d=c.call(null,e,a,b))?!1:void 0}),!!d):d},mixin:a.extend,identity:function(a){return a},clone:function(b){return a.extend(!0,{},b)},getIdGenerator:function(){var a=0;return function(){return a++}},templatify:function(b){function c(){return String(b)}return a.isFunction(b)?b:c},defer:function(a){setTimeout(a,0)},debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},throttle:function(a,b){var c,d,e,f,g,h;return g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)},function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},stringify:function(a){return b.isString(a)?a:JSON.stringify(a)},noop: function(){}}}(),c="0.11.1",d=function(){"use strict";function a(a){return a=b.toStr(a),a?a.split(/\s+/):[]}function c(a){return a=b.toStr(a),a?a.split(/\W+/):[]}function d(a){return function(c){return c=b.isArray(c)?c:[].slice.call(arguments,0),function(d){var e=[];return b.each(c,function(c){e=e.concat(a(b.toStr(d[c])))}),e}}}return{nonword:c,whitespace:a,obj:{nonword:d(c),whitespace:d(a)}}}(),e=function(){"use strict";function c(c){this.maxSize=b.isNumber(c)?c:100,this.reset(),this.maxSize<=0&&(this.set=this.get=a.noop)}function d(){this.head=this.tail=null}function e(a,b){this.key=a,this.val=b,this.prev=this.next=null}return b.mixin(c.prototype,{set:function(a,b){var c,d=this.list.tail;this.size>=this.maxSize&&(this.list.remove(d),delete this.hash[d.key],this.size--),(c=this.hash[a])?(c.val=b,this.list.moveToFront(c)):(c=new e(a,b),this.list.add(c),this.hash[a]=c,this.size++)},get:function(a){var b=this.hash[a];return b?(this.list.moveToFront(b),b.val):void 0},reset:function(){t his.size=0,this.hash={},this.list=new d}}),b.mixin(d.prototype,{add:function(a){this.head&&(a.next=this.head,this.head.prev=a),this.head=a,this.tail=this.tail||a},remove:function(a){a.prev?a.prev.next=a.next:this.head=a.next,a.next?a.next.prev=a.prev:this.tail=a.prev},moveToFront:function(a){this.remove(a),this.add(a)}}),c}(),f=function(){"use strict";function c(a,c){this.prefix=["__",a,"__"].join(""),this.ttlKey="__ttl__",this.keyMatcher=new RegExp("^"+b.escapeRegExChars(this.prefix)),this.ls=c||h,!this.ls&&this._noop()}function d(){return(new Date).getTime()}function e(a){return JSON.stringify(b.isUndefined(a)?null:a)}function f(b){return a.parseJSON(b)}function g(a){var b,c,d=[],e=h.length;for(b=0;e>b;b++)(c=h.key(b)).match(a)&&d.push(c.replace(a,""));return d}var h;try{h=window.localStorage,h.setItem("~~~","!"),h.removeItem("~~~")}catch(i){h=null}return b.mixin(c.prototype,{_prefix:function(a){return this.prefix+a},_ttlKey:function(a){return this._prefix(a)+this.ttlKey},_noop:fu nction(){this.get=this
svn commit: r1772522 [16/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/animate.css URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/animate.css?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/animate.css (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/animate.css Sun Dec 4 11:01:40 2016 @@ -0,0 +1,3391 @@ +@charset "UTF-8"; + +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2015 Daniel Eden +*/ + +.animated { + -webkit-animation-duration: .3s; + animation-duration: .3s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + -webkit-animation-duration: 1s; + animation-duration: 1s; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 53%, 80%, 100% { +-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); +transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); +-webkit-transform: translate3d(0,0,0); +transform: translate3d(0,0,0); + } + + 40%, 43% { +-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +-webkit-transform: translate3d(0, -30px, 0); +transform: translate3d(0, -30px, 0); + } + + 70% { +-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +-webkit-transform: translate3d(0, -15px, 0); +transform: translate3d(0, -15px, 0); + } + + 90% { +-webkit-transform: translate3d(0,-4px,0); +transform: translate3d(0,-4px,0); + } +} + +@keyframes bounce { + 0%, 20%, 53%, 80%, 100% { +-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); +transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); +-webkit-transform: translate3d(0,0,0); +-ms-transform: translate3d(0,0,0); +transform: translate3d(0,0,0); + } + + 40%, 43% { +-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +-webkit-transform: translate3d(0, -30px, 0); +-ms-transform: translate3d(0, -30px, 0); +transform: translate3d(0, -30px, 0); + } + + 70% { +-webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); +-webkit-transform: translate3d(0, -15px, 0); +-ms-transform: translate3d(0, -15px, 0); +transform: translate3d(0, -15px, 0); + } + + 90% { +-webkit-transform: translate3d(0,-4px,0); +-ms-transform: translate3d(0,-4px,0); +transform: translate3d(0,-4px,0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + -ms-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + 0%, 100% { +opacity: 1; + } + + 50% { +opacity: 0; + } +} + +@keyframes flash { + 0%, 100% { +opacity: 1; + } + + 50% { +opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { +-webkit-transform: scale3d(1, 1, 1); +transform: scale3d(1, 1, 1); + } + + 50% { +-webkit-transform: scale3d(1.05, 1.05, 1.05); +transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { +-webkit-transform: scale3d(1, 1, 1); +transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + 0% { +-webkit-transform: scale3d(1, 1, 1); +-ms-transform: scale3d(1, 1, 1); +transform: scale3d(1, 1, 1); + } + + 50% { +-webkit-transform: scale3d(1.05, 1.05, 1.05); +-ms-transform: scale3d(1.05, 1.05, 1.05); +transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { +-webkit-transform: scale3d(1, 1, 1); +-ms-transform: scale3d(1, 1, 1); +transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + 0% { +-webkit-transform: scale3d(1, 1, 1); +transform: scale3d(1, 1, 1); + } + + 30% { +-webkit-transform: scale3d(1.25, 0.75, 1); +transform: scale3d(1.25, 0.75, 1); + } + + 40% { +-webkit-transform: scale3d(0.75, 1.25, 1); +transform: scale3d(0.75, 1.25, 1); + } + + 50% { +-webkit-transform: scale3d(1.15, 0.85, 1); +transform: scale3d(1.15, 0.85, 1);
svn commit: r1772522 [43/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/testing-transactions-bmt.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/testing-transactions-bmt.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/testing-transactions-bmt.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/testing-transactions-bmt.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,280 @@ += Testing Transactions BMT +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example testing-transactions-bmt can be browsed at https://github.com/apache/tomee/tree/master/examples/testing-transactions-bmt + + +Shows how to begin, commit and rollback transactions using a UserTransaction via a Stateful Bean. + +== Movie + + +[source,java] + +package org.superbiz.injection.tx; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Movie { + +@Id +@GeneratedValue +private Long id; +private String director; +private String title; +private int year; + +public Movie(String director, String title, int year) { +this.director = director; +this.title = title; +this.year = year; +} + +public Movie() { + +} + +public Long getId() { +return id; +} + +public void setId(Long id) { +this.id = id; +} + +public String getDirector() { +return director; +} + +public void setDirector(String director) { +this.director = director; +} + +public String getTitle() { +return title; +} + +public void setTitle(String title) { +this.title = title; +} + +public int getYear() { +return year; +} + +public void setYear(int year) { +this.year = year; +} +} + + + +== Movies + + +[source,java] + +package org.superbiz.injection.tx; + +import javax.annotation.Resource; +import javax.ejb.Stateful; +import javax.ejb.TransactionManagement; +import javax.ejb.TransactionManagementType; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.PersistenceContextType; +import javax.persistence.Query; +import javax.transaction.UserTransaction; + +@Stateful(name = "Movies") +@TransactionManagement(TransactionManagementType.BEAN) +public class Movies { + +@PersistenceContext(unitName = "movie-unit", type = PersistenceContextType.TRANSACTION) +private EntityManager entityManager; + +@Resource +private UserTransaction userTransaction; + +public void addMovie(Movie movie) throws Exception { +try { +userTransaction.begin(); +entityManager.persist(movie); + +//For some dummy reason, this db can have only 5 titles. :O) +if (countMovies() > 5) { +userTransaction.rollback(); +} else { +userTransaction.commit(); +} + + +} catch (Exception e) { +e.printStackTrace(); +userTransaction.rollback(); +} +} + +public Long countMovies() throws Exception { +Query query = entityManager.createQuery("SELECT COUNT(m) FROM Movie m"); +return Long.class.cast(query.getSingleResult()); +} +} + + + + +== persistence.xml + + +[source,xml] + +http://java.sun.com/xml/ns/persistence"; version="1.0"> + + +movieDatabase +movieDatabaseUnmanaged +org.superbiz.injection.tx.Movie + + + + + + + + + +== MoviesTest + + +[source,java] + +package org.superbiz.injection.tx; + +import org.junit.Assert; +import org.junit.Test; + +import javax.ejb.EJB; +import javax.ejb.embeddable.EJBContainer; +import java.util.Properties; + +public class MoviesTest { + +@EJB +private Movies movies; + +@Test +public void testMe() throws Exception { +final Properties p = new Properties(); +p.put("movieDatabase", "new://Resource?type=DataSource"); +p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver"); +p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb"); + +EJBContainer.createEJBContainer(p).getContext().bind("inject", this); + +movies.addMovie(new Movie("Asif Kapadia", "Senna", 2010)); +movies.addMovie(new Movie("José Padilha", "Tropa de Elite", 2007)); +movies.addMovie(new Movie("Andy Wachowski/Lana Wachowski", "The Matrix", 1999)); +movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992)); +movies.addMovie(new Movie("Joel Coen", "Fargo", 1996)); +movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998)); + +Assert.assertEquals(5L, movie
svn commit: r1772522 [24/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/owl.carousel.min.js URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/owl.carousel.min.js?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/owl.carousel.min.js (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/js/owl.carousel.min.js Sun Dec 4 11:01:40 2016 @@ -0,0 +1,47 @@ +"function"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g}); +(function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e="";if("function"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;"function"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof b.options.jsonPath? +(e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length; +this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&& +(this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof this.options.afterAction&&this.options.afterAction.apply(this, +[this.$elem])},updateVars:function(){"function"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}), +g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('').wrap('');this.$elem.find(".owl-wrapper").wrap('');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")}, +baseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall= +!1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;bthis.itemsAmount&& +!0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.auto
svn commit: r1772522 [3/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advanced
Modified: tomee/site/trunk/content/admin/configuration/application.pdf URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/admin/configuration/application.pdf?rev=1772522&r1=1772521&r2=1772522&view=diff == --- tomee/site/trunk/content/admin/configuration/application.pdf (original) +++ tomee/site/trunk/content/admin/configuration/application.pdf Sun Dec 4 11:01:40 2016 @@ -4,8 +4,8 @@ << /Title (Application Configuration) /Creator (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0) /Producer (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0) -/CreationDate (D:2016120459+01'00') -/ModDate (D:2016120459+01'00') +/CreationDate (D:20161204112523+01'00') +/ModDate (D:20161204112523+01'00') >> endobj 2 0 obj @@ -78,7 +78,7 @@ endobj endobj 8 0 obj << /Type /Font -/BaseFont /BF+NotoSerif +/BaseFont /BC+NotoSerif /Subtype /TrueType /FontDescriptor 35 0 R /FirstChar 32 @@ -1820,7 +1820,7 @@ endobj endobj 14 0 obj << /Type /Font -/BaseFont /BG+mplus1mn-regular +/BaseFont /BD+mplus1mn-regular /Subtype /TrueType /FontDescriptor 39 0 R /FirstChar 32 @@ -1834,7 +1834,7 @@ endobj endobj 16 0 obj << /Type /Font -/BaseFont /BH+NotoSerif-Bold +/BaseFont /BE+NotoSerif-Bold /Subtype /TrueType /FontDescriptor 43 0 R /FirstChar 32 @@ -3602,7 +3602,7 @@ endobj >> stream xz TWî½U¥@HbÓBbûb6³ - ØFXÌ"ÌqÇm;ÎÒN»'c;1a<OÆÎqN:/çMìîy9ÌÄNwg÷2½Äãdº=<å÷W©d&é'NQº·ªþÿ»ÿþßÂ!²!ì÷Mò_»üÌ\@Ç Í ÎÈßßFH{y,Ðïû¿O}q!ý^¸çÁáñ½©} Wà4<ì÷Å~À?P*Qê¸oï$êÄc40Ölmµæ|õÎ#÷Á¸Æ½éþ 2a|ÆÏOøÆýÿÚvȱ! ä¢_E(ÆÈ&^¢à+ýÅæÎÅã#0B"9Ñbbb%qñR$K@òÄ$ 29E¥ÖhuzÊ=h0ÒÒ32³Ì«-;ÇëpæåºÜ¿Ìüÿ÷Sü?º£Yú6qTEÈepäÆypLLâÚøý#ǼPX¸ðãã#ûKâ#ûn^{µdGþÙ±öõ×±úgò{J¾ÿÁMVÐjâhåZCEÄɤÏÇÞ´p¹ Z÷²´>ø~IOþ_Ò×_þäã³ù;J^½ÆÒrÓWðq,Dr£TL ìȵP\§=GEàã©Í=þ :£.¡¡@ä-Ý7ܪôjz¤J49]íòÈÍåìíø:QCÌ#Ðc¼C+³2|ýÔ©àúîü >ñååz¸øéubAª·*V½L¦·*V½tC#ki&'s"PÏT + ØFXÌ"ÌqÇm;ÎÒN»'c;1a<OÆÎqN:/çMìîy9ÌÄNwg÷2½Äãdº=<å÷W©d&é'NQº·ªþÿ»ÿþßÂ!²!ì÷Mò_»üÌ\@Ç Í ÎÈßßFH{y,Ðïû¿O}q!ý^¸çÁáñ½©} Wà4<ì÷Å~À?P*Qê¸oï$êÄc40Ölmµæ|õÎ#÷Á¸Æ½éþ 2a|ÆÏOøÆýÿÚ|ȱ! ä¢_E(ÆÈ&^¢à+ýÅæÎÅã#0B"9Ñbbb%qñR$K@òÄ$ 29E¥ÖhuzÊ=h0ÒÒ32³Ì«-;ÇëpæåºÜ¿Ìüÿ÷Sü?º£Yú6qTEÈepäÆypLLâÚøý#ǼPX¸ðãã#ûKâ#ûn^{µdGþÙ±öõ×±úgò{J¾ÿÁMVÐjâhåZCEÄɤÏÇÞ´p¹ Z÷²´>ø~IOþ_Ò×_þäã³ù;J^½ÆÒrÓWðq,Dr£TL ìȵP\§=GEàã©Í=þ :£.¡¡@ä-Ý7ܪôjz¤J49]íòÈÍåìíø:QCÌ#Ðc¼C+³2|ýÔ©àúîü >ñååz¸øéubAª·*V½L¦·*V½tC#ki&'s"PÏT ï]xÞÄHâ ãTí9± U1A¥¸ö¾:÷À¥ÙüüÙ×ö~¯kU\í½Mtx»G*ðܼÉðϸy!ÊÀÿÎÍG )âÒLn^6ØÊÍÐâAn>©O¹ùHTDÐw¦"¹ù(TDvróÑÈB>ÉÍG£òsóbA©¸y1j£jÊsS#CÃ3[v¦:ók¶Lô[4¥ccæÒ´¦Å?íºÏ?`Aå(&Ñ4Ñ B§v (8 Chùa´M ~0 dcð§UfG~8ûÖ}ð Y3M«jd# wà®Vö4ØâóM± ¡Y èCS ÀÌÜ$@÷ LiÌ0* @a¥4¨Æá±! 7ÿ5È Ç&¼¾×?5=Ðd[l¹Ùa°\æÂ4\bØi@I.|EÃ¥ð)«Êd(²YÒ#ÓffÊ7à÷Mjác9 +I±ç¡ìàæyH +¸y>½Mtx»G*ðܼÉðϸy!ÊÀÿÎÍG )âÒLn^6ØÊÍÐâAn>©O¹ùHTDÐw¦"¹ù(TDvróÑÈB>ÉÍG£òsóbA©¸y1j£jÊsS#CÃ3[v¦:ók¶Lô[4¥ccæÒ´¦Å?íºÏ?`Aå(&Ñ4Ñ B§v (8 Chùa´M ~0 dcð§UfG~8ûÖ}ð Y3M«jd# wà®Vö4ØâóM± ¡Y èCS ÀÌÜ$@÷ LiÌ0* @a¥4¨Æá±! 7ÿ5È Ç&¼¾×?5=Ðd[l¹Ùa°\æÂ4\bØi@I.|EÃ¥ð)+Ïd(²YÒ#ÓffÊ7à÷Mjác9 ÊÇpðüì¦Ð(ÌÀs¿Fè÷È %üå±ññ ÿôÈÐfÆïßäé VN'X~ 5^áñif'G&fÀb8 þMßæ.Ù0²ðлÆY 3ÌBÄÌõ{Í&`63<33Yhµöü!VÄþÀ¸uÒ @VÖgàùB&VXx¥bk2µ°óãp} N7Vò={,ãܲXÒÓ3³# ÷° ²õíiî`Cõ#ýþiØìÄJ33ì×NúúáÄ]ÉÒ,0ÇbX:Tü@w#ÇÖ&9 ³Ò)~>¸/8ZÿLÌl´áÆÃÖècXSCÖ± ikýòÊÆÖJ3bóõú¸ZòÈÔ -R ç> 3õ`xå#ÁÉ*Á)Yî(ø Ü7Ow;cþ²aìý_<-!¿¢¯}(Xv°ÿôªt +R ç> 3õ`xå#ÁÉ*Á)Yî(ø Ü7»É1EÿID +Ù0öþ/ Î_QÄWÂ>,;ØÏÿg¶t endstream endobj 35 0 obj << /Type /FontDescriptor -/FontName /BF+NotoSerif +/FontName /BC+NotoSerif /FontFile2 34 0 R /FontBBox [-212 -250 1246 1047] /Flags 6 @@ -3662,39 +3663,38 @@ endobj endobj 38 0 obj << /Length1 7312 -/Length 4995 +/Length 4994 /Filter [/FlateDecode] >> stream -x8 tS×ï=Ù°Á¶6o²äoË-%kñ&ËònaYÙxÃƶ¼@¼Å1ìH¥É2¤ QIHpR¤ç¤$RJ(CS2NBi&'I ¿ç¾ÿ¿Óf¦sF:ï¿í¾»½»ý0Bh2£Hôl÷`çÈÑ-)¿ ËayßÀæÞÏ]=ãÏM wwXÿc1B~yªp|òɽòJ0þþNé=ä¿R¥À~Æ`çäîEí0wÃ\S¿&Çâ¬=÷4Ì×üqdxlü÷JFa~æ¯ uöüåëóÏ!?ÈèBâÓmOÀ¾}d´g$ü ^ ó07õô ÆÈ9PÐ#=ÝÆ5¸.r B)ÀþRhQù¸1£øà Ñü$"R,.BÑôø2'+ªøå(1)9%U¦Ñ¦3º¬l´;±é FS9×bͳÙÎü¢bW»ÔSV^*ÿ1ýÿû¯êÿ{ 1ü%~P´ÄV#SCÊ¢SÐDKÙëx9{Âwîçø¸(¥ tÐ25V)%*Ʀ˲Å'ÈLØg·Ú¬ .K¬R¦aÝ ½NóÉjÍë4w4Wçfgní]·DÚÛKf¿Mm(ù (´Qä×Æ`eªßÕØÚ Õ*¢»[Ô"ö¸x²«ØÅø\C/DaÓª6àt,.+£|aô*< -ÑÝ£ä_}hf[7Ï]ÄoKt} f0~=QWKß±"Bå)û$WQ,J@iÉ-j¢!é&çÂx« 2/QètåÝõååË-å|Tæt/¼Tât«Á§/>Ìà»ÙK]©w|?RÃñ6ÀhX+ËØVØÖÏ_ í¸Ç·aV0~9¼Èr¨¬*
svn commit: r1772522 [37/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/jsf-managedBean-and-ejb.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/jsf-managedBean-and-ejb.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/jsf-managedBean-and-ejb.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/jsf-managedBean-and-ejb.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,277 @@ += JSF Application that uses managed-bean and ejb +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example jsf-managedBean-and-ejb can be browsed at https://github.com/apache/tomee/tree/master/examples/jsf-managedBean-and-ejb + + +This is a simple web-app showing how to use dependency injection in JSF managed beans using TomEE. + +It contains a Local Stateless session bean `CalculatorImpl` which adds two numbers and returns the result. +The application also contains a JSF managed bean `CalculatorBean`, which uses the EJB to add two numbers +and display the results to the user. The EJB is injected in the managed bean using `@EJB` annotation. + + +== A little note on the setup: + +You could run this in the latest Apache TomEE link:https://repository.apache.org/content/repositories/snapshots/org/apache/openejb/apache-tomee/[snapshot] + +As for the libraries, myfaces-api and myfaces-impl are provided in tomee/lib and hence they should not be a part of the +war. In maven terms, they would be with scope 'provided' + +Also note that we use servlet 2.5 declaration in web.xml + + +[source,xml] + +http://www.w3.org/2001/XMLSchema-instance"; +xmlns="http://java.sun.com/xml/ns/javaee"; +xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"; +xsi:schemaLocation="http://java.sun.com/xml/ns/javaee +http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"; +version="2.5"> + +And we use 2.0 version of faces-config + + 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"> + + +The complete source code is provided below but let's break down to look at some smaller snippets and see how it works. + +We'll first declare the `FacesServlet` in the `web.xml` + + +Faces Servlet +javax.faces.webapp.FacesServlet +1 + + +`FacesServlet` acts as the master controller. + +We'll then create the `calculator.xhtml` file. + + + + + + + + +Notice how we've use the bean here. +By default it is the simple class name of the managed bean. + +When a request comes in, the bean is instantiated and placed in the appropriate scope. +By default, the bean is placed in the request scope. + + + +Here, getX() method of calculatorBean is invoked and the resulting value is displayed. +x being a Double, we rightly should see 0.0 displayed. + +When you change the value and submit the form, these entered values are bound using the setters +in the bean and then the commandButton-action method is invoked. + +In this case, `CalculatorBean#add()` is invoked. + +`Calculator#add()` delegates the work to the ejb, gets the result, stores it +and then instructs what view is to be rendered. + +You're right. The return value "success" is checked up in faces-config navigation-rules +and the respective page is rendered. + +In our case, `result.xhtml` page is rendered. + +The request scoped `calculatorBean` is available here, and we use EL to display the values. + +## Source + +## Calculator + +package org.superbiz.jsf; + +import javax.ejb.Local; + +@Local +public interface Calculator { +public double add(double x, double y); +} + + +## CalculatorBean + +package org.superbiz.jsf; + +import javax.ejb.EJB; +import javax.faces.bean.ManagedBean; + +@ManagedBean +public class CalculatorBean { +@EJB +Calculator calculator; +private double x; +private double y; +private double result; + +public double getX() { +return x; +} + +public void setX(double x) { +this.x = x; +} + +public double getY() { +return y; +} + +public void setY(double y) { +this.y = y; +} + +public double getResult() { +return result; +} + +public void setResult(double result) { +this.result = result; +} + +public String add() { +result = calculator.add(x, y); +return "success"; +} +} + +## CalculatorImpl + +package org.superbiz.jsf; + +import javax.ejb.Stateless; + +@Stateless +public class CalculatorImpl implements Calculator { + +public double add(double x, double y) { +return x + y; +} +} + + +# web.xml + + + +http:
svn commit: r1772522 [4/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advanced
Modified: tomee/site/trunk/content/admin/configuration/containers.pdf URL: http://svn.apache.org/viewvc/tomee/site/trunk/content/admin/configuration/containers.pdf?rev=1772522&r1=1772521&r2=1772522&view=diff == --- tomee/site/trunk/content/admin/configuration/containers.pdf (original) +++ tomee/site/trunk/content/admin/configuration/containers.pdf Sun Dec 4 11:01:40 2016 @@ -4,8 +4,8 @@ << /Title (Resources) /Creator (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0) /Producer (Asciidoctor PDF 1.5.0.alpha.11, based on Prawn 1.3.0) -/CreationDate (D:2016120457+01'00') -/ModDate (D:2016120457+01'00') +/CreationDate (D:20161204112521+01'00') +/ModDate (D:20161204112521+01'00') >> endobj 2 0 obj @@ -78,7 +78,7 @@ endobj endobj 8 0 obj << /Type /Font -/BaseFont /CR+NotoSerif +/BaseFont /CQ+NotoSerif /Subtype /TrueType /FontDescriptor 95 0 R /FirstChar 32 @@ -723,7 +723,7 @@ endobj endobj 11 0 obj << /Type /Font -/BaseFont /CS+mplus1mn-regular +/BaseFont /CR+mplus1mn-regular /Subtype /TrueType /FontDescriptor 99 0 R /FirstChar 32 @@ -768,7 +768,7 @@ endobj endobj 17 0 obj << /Type /Font -/BaseFont /CT+NotoSerif-Bold +/BaseFont /CS+NotoSerif-Bold /Subtype /TrueType /FontDescriptor 103 0 R /FirstChar 32 @@ -9187,49 +9187,45 @@ endobj endobj 94 0 obj << /Length1 12112 -/Length 7629 +/Length 7628 /Filter [/FlateDecode] >> stream -xzxÕµîÞ3#YmÙ²$Ël=,K²lëaËlËò+~ÅOùÇòÛñC$nHBÈ ) >)äKSåòqåm¹%¥ÀáRnK).p¸|=¹kF-;¦í£ñìYëßÿZ{µ÷Â!>² êðMùD¯AË9püðøüPócàÿJ÷÷ûÕÿ!]:ÜsÏÈÄìnÛCñáv,ôŽÅ=6áÛ= ¶áq8ÿÎU[Í9ß½rÏ-¥GÃyïfûqÄ×p>ÎèôM~лß!! âb¼Îv¼ÁóþîÁI -äq#/#Æn%ÒÄ$<9E¡T©S&M«Ó§¯ -0ddfMfKv5×fwäå8]î¢âÒ¿¯<´yþñ[ÙìÿënÍW_s.!E@¤Ý¿}ÇÝCÂçÄÒJÄÐ1G_#îà±JLaËwcD@âjQñÞÑï-,¾vxto±8¸çêÅ=y§ÞÇêgÅÊÿz4¯»øço]ed¬ ¬\¡·)xàÄ¢[AÖmNçm ëÖVÖ[?/îÎ{ô¿è}þàýSy=ů°²\ôe|ó!X@lË5Q¶\»5GAàÃiÝ= ©ºÔº|U^V·dÏH³Ü«ê.Ë%âdÒé=løC¢X >ȦX þðøqÄ^[¼ñÞzD9rÝ#\ú4©&bQ¬1ËefD¢1ËäfxoºM%¨léz;s´3\wßøJá¼Ï롳ð(PÂp<Xµæ¸¡ÅRâÜ}qþ¶KsyysO/îþùnç8¹h¸ºf¨H./¬®.N&Þÿ ýé«ãã¯béO`ñ+;v¼Böä±/ok{ücÇ®im=s5Æ"ù&çEÖ´ÚX=B©IÕãEØ*åN,¹|Pã2ÊõÅ. ±@YTÙl=rÌäÒxùÊk©ÏSº²yRM»ãz¦¥@É÷2²G@ö¡of¦g`¬ù TÛ° uHTÙÔLíô~ÇT¨Dð¼üåû°·É_¦H²nµW´åÄk-rëàÑ~ßññ|j®ê÷ï ÷É2 --}ò(>´ýèþÅ -çörmNˤ+ZiÕ;« Ù·±}Ý\§|"Èh&¶ 1cJÃ6ÛÀ^vM¶äX{ïö͵å$ÚíA\CëäNwvûîJ·¥Î©ÉªÝãü§íÆ -§¦Ô×Z[wÉhµaÄØ4·¥°§45fVó|}ùþ -!%J³×5Ýî+ËiÝÍFw¹½«TËM BT7ÍDÖ_$û¨ÙN¸0ðjZ%zàpo²Gnt§ÊW*` ¸r¦ÝÉ¡"djVM¿ÿt5k̳-äËõ3øªq|Êo]¶x:åoçÏÁm?´½H-ÒèM¤FM²N»:B}R4¶5+«iºÒVçÌeçø^hPÑ3zå\Wÿ·Uz~°=¨TéÚ6 iÜïkÜÝ çÅÄñÄúuWR§ÝQ öñÓã#ç<úÂ-©ùÅYµËË^°mØ6 ÔTtaHå¦ \ à&Ü -¸ÅnËÕ÷?äªjÍé96VàÜyztèübUJAû®£ÞÅCC(«l>½ºÄ.!ô®É½úMúD_0~¢oü⾪֧±ò?|Ï-Ý3VXopç´hWÎJÔãïÞ]üäs?=Åp8ö|ÔX5"µãýø+' y¸!<í¼v£$ê¾É¡ozê 1æ5ëýqÎ ZF/`½< În²ÇÜ2í)è«ÐçìøÉ-½GíéUCîÚ½Ù?¸45s~ÎßóLÔeè¼û}ÓòlIrtäw*᤬ &+û«ým*u]÷DqåCn[Ͼ:ÏPc2©wÊã{x£pôð[ªgnGóÖÌÜ¥Ùâ¥5wVfjK:möª"UkK[ ×Üø\fíæb¼*^ÄDÕAãÃCAܤÃÊeûöÛ'ã'8kºì9w9ÿJy~Ç©þ¶O²N*08kïÊi.6ô -sb¢°£[p®UåtSÃ-õº!gGuÍ [¨Q`ü æ¡uÂË¢ -Ƚ$wôa«ÜR¢KÊïòÌ>6d²üxgÍL»G&L°/M?ünhyü[ÎëwK¶Ú¦[zj̧¿8~ðO§;S,E©Q:¥¾±4pÂO°øÕIÖÀß2¤ å{õz¾¯ÇLC -9Ý-K×þeåp;3'¿{²sŶçé=®¯¿¾H¼þ?ÿc8ßsôËï7úôÎÆ¥×{-^ðZíZ^§8à jedÁàú%YªË$gò½âñwð)if>¯ÒñC¢vú¸72Ùa$¯²i>ÞÎÜ¿òÁ@Ho/èezËHg¬ ªA+Èd2VÙʬR¶Ã¥Æ2§aå ]ÈV¬ÊoÙJ&¿m͹l<§¦écÚÓ¬ZÝî©°B&mOÑÿ÷§Þ®ÅÑ?þÉÎ< µ<=â×íOÏæÚ÷¼|ÓÉ@âb^J®.aø]ñy7úÁÃWkÁÕFG -[úÅäËN º ñð=¼©7î%/ÉÙ¬>ÈñçÂ\¤Eê6Êãr£K#'ZÖ®°nÿ@«Ö2~ÐiØÿé>|ríÊr¼ÑéEAÌÄc9¬NÜ S=«õ \@ÑÂD'«D}ãZÌÊNÀ²©hIE¥ÃÚðîUÝödÓ¶ýhúx×5w?=âóÈ-¦ÞÔi@$ø#±X&DëqÄߤ< ÎJʱâËòtúm|Á9O%ßÙéÑÑq¿êApÔNÓ+µ´È³+ôS+KÍÞ¸J¾v~å&f¡¯¼ÂǪúû¸ à lü©$CJÇë(T8פ¶ª¦«B:"¬ ÃòAkðæTDâõFæÄG£'t¦ÖõT._# ÿÅgð«kؼrkUqí¤ë¿¹©ç×'¨ûoò Öv¾,¦NÚÞÀ -uxÌA¯9<ÞE¼Ïü#'¶:±\wï_<æ@VÓ3G8oüãó2ÎBË/9ýÕ©Sß~äêëï~´?+«ÿ§§O ×ÏË$¯]}qÆë=ó -å j?ô_,7yA0ex!×j}X(Ú÷â®üÛÿç±}ÌyÙçÛîlÑ3IôPxßþ]g÷ÕÑKì`'ëÛúªw§p°Y^6l4EE±õ¨6,ÏûsûJ¸)½^þì ÖëÉö6ï¸>x$ç]kjò -Ò« -ðt',Üe.¿Ú´ÐYoNoØÝÐ4³E þÒs¯ î1q?0ó÷ 6¼Xæ'i nÆ×Ϋ$Õ¥CUw?¢ªïÜ~oɳû¯ûÞ>k[µÔÞ^âÜVªªÙÓÑy¸/·òÎçÄ5cÅîÚâ[:íû÷æy·x´ú»ZÚïÞ£+n6z,Û¶Ô.¯ÍµÆ¦mÜ»)ß6k' ³6±D;%`b&&ÞaÚ¼r¡ë£K/¢¢ îc2¢Xç6ýòµñDíd³1 -f`v)ÁO.[£ö÷D\â£ùöW4k×Þ}@Á¶,¾ ¶úº¯å;öÖ§YZç*HsXë¡Ó;YLL=;2±ÍtÕ%}T¤ÀR7vÕÝ* L ÑQ2¦r%¬f·+÷¡2Kú¿y|OWdjBºúF|Pµ®w=Y]½ÔKJ2 mf¯7Zãι^ÄbGWòb²A@)¹^©&Bâæø¨¥±úä$Ëa0|£WÓ±ôÒ3ôSô/Aä'¥ o.àås_±ù7³Ë¯¬>ÝOìV(d,®T·õzµp}ÿzü;·ý¼ºáý¤?0 5P=HÀx9'&ýRÄ.]èV<44õÐlÊ^Ä,ØØØê¬ÔÝÑ6W¥üιŠhí(¼«¶ç³@ ü3PU
svn commit: r1772522 [30/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/download.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/download.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/download.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/download.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,256 @@ += Downloads +:jbake-date: 2015-04-05 +:jbake-type: page +:jbake-status: published +:jbake-tomeepdf: +:icons: font + +IMPORTANT: only TomEE 1.x WebProfile and JAX-RS distributions are certified. + +[.table.table-bordered,options="header"] +|=== +|Name|Version|Date|Size|Type|Links +|Apache TomEE plume|7.0.2|Fri, 11 Nov 2016 22:41:15 GMT|55 MB |tar.gz| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.tar.gz[icon:download[] tar.gz] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.tar.gz.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.tar.gz.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.tar.gz.asc[icon:download[] asc] +|Apache TomEE plume|7.0.2|Fri, 11 Nov 2016 22:39:25 GMT|56 MB |zip| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.zip[icon:download[] zip] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.zip.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.zip.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plume.zip.asc[icon:download[] asc] +|Apache TomEE plus|7.0.2|Fri, 11 Nov 2016 22:37:49 GMT|49 MB |tar.gz| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.tar.gz[icon:download[] tar.gz] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.tar.gz.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.tar.gz.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.tar.gz.asc[icon:download[] asc] +|Apache TomEE plus|7.0.2|Fri, 11 Nov 2016 22:36:12 GMT|49 MB |zip| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.zip[icon:download[] zip] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.zip.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.zip.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-plus.zip.asc[icon:download[] asc] +|Apache TomEE webprofile|7.0.2|Fri, 11 Nov 2016 22:30:21 GMT|34 MB |tar.gz| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.tar.gz[icon:download[] tar.gz] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.tar.gz.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.tar.gz.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.tar.gz.asc[icon:download[] asc] +|Apache TomEE webprofile|7.0.2|Fri, 11 Nov 2016 22:29:08 GMT|35 MB |zip| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.zip[icon:download[] zip] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.zip.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.zip.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.2/apache-tomee-7.0.2-webprofile.zip.asc[icon:download[] asc] +|Apache TomEE plume|7.0.1|Wed, 22 Jun 2016 22:41:15 GMT|54 MB |tar.gz| http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.1/apache-tomee-7.0.1-plume.tar.gz[icon:download[] tar.gz] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.1/apache-tomee-7.0.1-plume.tar.gz.sha1[icon:download[] sha1] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.1/apache-tomee-7.0.1-plume.tar.gz.md5[icon:download[] md5] http://repo.maven.apache.org/maven2/org/apache/tomee/apache-tomee/7.0.1/apache-tomee-7.0.1-plume.tar.gz.asc[icon:download[] asc] +|Apache TomEE plume|7.0.1|Wed
svn commit: r1772522 [42/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/struts.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/struts.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/struts.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/struts.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,439 @@ += Struts +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example struts can be browsed at https://github.com/apache/tomee/tree/master/examples/struts + + +*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* + +== AddUser + + +[source,java] + +package org.superbiz.struts; + +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.Properties; + + +public class AddUser { + +private int id; +private String firstName; +private String lastName; +private String errorMessage; + + +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 getErrorMessage() { +return errorMessage; +} + +public void setErrorMessage(String errorMessage) { +this.errorMessage = errorMessage; +} + +public int getId() { +return id; +} + +public void setId(int id) { +this.id = id; +} + +public String execute() { + +try { +UserService service = null; +Properties props = new Properties(); +props.put(Context.INITIAL_CONTEXT_FACTORY, +"org.apache.openejb.core.LocalInitialContextFactory"); +Context ctx = new InitialContext(props); +service = (UserService) ctx.lookup("UserServiceImplLocal"); +service.add(new User(id, firstName, lastName)); +} catch (Exception e) { +this.errorMessage = e.getMessage(); +return "failure"; +} + +return "success"; +} +} + + + +== AddUserForm + + +[source,java] + +package org.superbiz.struts; + +import com.opensymphony.xwork2.ActionSupport; + + +public class AddUserForm extends ActionSupport { +} + + + +== FindUser + + +[source,java] + +package org.superbiz.struts; + +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.Properties; + +public class FindUser { + +private int id; +private String errorMessage; +private User user; + +public User getUser() { +return user; +} + +public void setUser(User user) { +this.user = user; +} + +public String getErrorMessage() { +return errorMessage; +} + +public void setErrorMessage(String errorMessage) { +this.errorMessage = errorMessage; +} + +public int getId() { +return id; +} + +public void setId(int id) { +this.id = id; +} + +public String execute() { + +try { +UserService service = null; +Properties props = new Properties(); +props.put(Context.INITIAL_CONTEXT_FACTORY, +"org.apache.openejb.core.LocalInitialContextFactory"); +Context ctx = new InitialContext(props); +service = (UserService) ctx.lookup("UserServiceImplLocal"); +this.user = service.find(id); +} catch (Exception e) { +this.errorMessage = e.getMessage(); +return "failure"; +} + +return "success"; +} +} + + + +== FindUserForm + + +[source,java] + +package org.superbiz.struts; + +import com.opensymphony.xwork2.ActionSupport; + + +public class FindUserForm extends ActionSupport { +} + + + +== ListAllUsers + + +[source,java] + +package org.superbiz.struts; + +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.List; +import java.util.Properties; + +public class ListAllUsers { + +private int id; +private String errorMessage; +private List users; + +public List getUsers() { +return users; +} + +public void setUsers(List users) { +this.users = users; +} + +public String getErrorMessage() { +return errorMessage; +} + +public void setErrorMessage(String errorMessage) { +this.errorMessage = errorMessage; +} + +public int getId() { +return id; +} + +public void setId(int id) { +this.id = id; +} + +public String execute() { + +try { +UserService service = null; +
svn commit: r1772522 [41/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/simple-singleton.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/simple-singleton.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/simple-singleton.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/simple-singleton.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,376 @@ += Simple Singleton +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example simple-singleton can be browsed at https://github.com/apache/tomee/tree/master/examples/simple-singleton + + +As the name implies a `javax.ejb.Singleton` is a session bean with a guarantee that there is at most one instance in the application. + +What it gives that is completely missing in EJB 3.0 and prior versions is the ability to have an EJB that is notified when the application starts and notified when the application stops. So you can do all sorts of things that you previously could only do with a load-on-startup servlet. It also gives you a place to hold data that pertains to the entire application and all users using it, without the need for a static. Additionally, Singleton beans can be invoked by several threads at one time similar to a Servlet. + +See the link:../../singleton-beans.html[Singleton Beans] page for a full description of the javax.ejb.Singleton api. + += The Code + +== PropertyRegistry Bean-Managed Concurrency + +Here we see a bean that uses the Bean-Managed Concurrency option as well as the @Startup annotation which causes the bean to be instantiated by the container when the application starts. Singleton beans with @ConcurrencyManagement(BEAN) are responsible for their own thread-safety. The bean shown is a simple properties "registry" and provides a place where options could be set and retrieved by all beans in the application. + + +[source,java] + +package org.superbiz.registry; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import javax.ejb.ConcurrencyManagement; +import javax.ejb.Singleton; +import javax.ejb.Startup; +import java.util.Properties; + +import static javax.ejb.ConcurrencyManagementType.BEAN; + +@Singleton +@Startup +@ConcurrencyManagement(BEAN) +public class PropertyRegistry { + +// Note the java.util.Properties object is a thread-safe +// collections that uses synchronization. If it didn't +// you would have to use some form of synchronization +// to ensure the PropertyRegistryBean is thread-safe. +private final Properties properties = new Properties(); + +// The @Startup annotation ensures that this method is +// called when the application starts up. +@PostConstruct +public void applicationStartup() { +properties.putAll(System.getProperties()); +} + +@PreDestroy +public void applicationShutdown() { +properties.clear(); +} + +public String getProperty(final String key) { +return properties.getProperty(key); +} + +public String setProperty(final String key, final String value) { +return (String) properties.setProperty(key, value); +} + +public String removeProperty(final String key) { +return (String) properties.remove(key); +} +} + + + +== ComponentRegistry Container-Managed Concurrency + +Here we see a bean that uses the Container-Managed Concurrency option, the default. With @ConcurrencyManagement(CONTAINER) the container controls whether multi-threaded access should be allowed to the bean (`@Lock(READ)`) or if single-threaded access should be enforced (`@Lock(WRITE)`). + + +[source,java] + +package org.superbiz.registry; + +import javax.ejb.Lock; +import javax.ejb.Singleton; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import static javax.ejb.LockType.READ; +import static javax.ejb.LockType.WRITE; + +@Singleton +@Lock(READ) +public class ComponentRegistry { + +private final Map components = new HashMap(); + +public T getComponent(final Class type) { +return (T) components.get(type); +} + +public Collection getComponents() { +return new ArrayList(components.values()); +} + +@Lock(WRITE) +public T setComponent(final Class type, final T value) { +return (T) components.put(type, value); +} + +@Lock(WRITE) +public T removeComponent(final Class type) { +return (T) components.remove(type); +} +} + + + +Unless specified explicitly on the bean class or a method, the default `@Lock` value is `@Lock(WRITE)`. The code above uses the `@Lock(READ)` annotation on bean class to change the default so that multi-threaded access is granted by default. W
svn commit: r1772522 [17/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css Sun Dec 4 11:01:40 2016 @@ -0,0 +1,6782 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; + color: #33; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + margin: .67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -.5em; +} +sub { + bottom: -.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { +color: #000 !important; +text-shadow: none !important; +background: transparent !important; +-webkit-box-shadow: none !important; +box-shadow: none !important; + } + a, + a:visited { +text-decoration: underline; + } + a[href]:after { +content: " (" attr(href) ")"; + } + abbr[title]:after { +content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { +content: ""; + } + pre, + blockquote { +border: 1px solid #999; + +page-break-inside: avoid; + } + thead { +display: table-header-group; + } + tr, + img { +page-break-inside: avoid; + } + img { +max-width: 100% !important; + } + p, + h2, + h3 { +orphans: 3; +widows: 3; + } + h2, + h3 { +page-break-after: avoid; + } + .navbar { +display: none; + } + .btn > .caret, + .dropup > .btn > .caret { +border-top-color: #000 !important; + } + .label { +border: 1px solid #000; + } + .table { +border-collapse: collapse !important; + } + .table td, + .table th { +background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { +border: 1px solid #ddd !important; + } +} +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('..
svn commit: r1772522 [14/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/examples.cache URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/examples.cache?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/examples.cache (added) +++ tomee/site/trunk/generators/site-tomee-ng/examples.cache Sun Dec 4 11:01:40 2016 @@ -0,0 +1,1653 @@ +{ + "all":{ +"adapters":[ + { +"name":"multiple-arquillian-adapters", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/multiple-arquillian-adapters"; + } +], +"alternate":[ + { +"name":"alternate-descriptors", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/alternate-descriptors"; + } +], +"alternative":[ + { +"name":"cdi-alternative-and-stereotypes", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/cdi-alternative-and-stereotypes"; + } +], +"applet":[ + { +"name":"applet", +"readme":"No README.md yet, be the first to contribute one!", +"url":"https://github.com/apache/tomee/tree/master/examples/applet"; + } +], +"applicationcomposer":[ + { +"name":"applicationcomposer-jaxws-cdi", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/applicationcomposer-jaxws-cdi"; + }, + { +"name":"rest-applicationcomposer", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/rest-applicationcomposer"; + }, + { +"name":"application-composer", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/application-composer"; + }, + { +"name":"rest-applicationcomposer-mockito", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/rest-applicationcomposer-mockito"; + } +], +"applicationexception":[ + { +"name":"applicationexception", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/applicationexception"; + } +], +"arquillian":[ + { +"name":"arquillian-jpa", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/arquillian-jpa"; + }, + { +"name":"multiple-tomee-arquillian", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/multiple-tomee-arquillian"; + }, + { +"name":"multiple-arquillian-adapters", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/multiple-arquillian-adapters"; + } +], +"async":[ + { +"name":"async-postconstruct", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/async-postconstruct"; + }, + { +"name":"async-methods", +"readme":"No README.md yet, be the first to contribute one!", + "url":"https://github.com/apache/tomee/tree/master/examples/async-methods"; + } +], +"attachments":[ + { +"name":"webservice-attachments", +"readme":"Title: Webservice Attachments\n\n*Help us document this example! Click the blue pencil icon in the upper right to edit this page.*\n\n## AttachmentImpl\n\npackage org.superbiz.attachment;\n\n import javax.activation.DataHandler;\nimport javax.activation.DataSource;\n import javax.ejb.Stateless;\nimport javax.jws.WebService;\nimport javax.xml.ws.BindingType;\nimport javax.xml.ws.soap.SOAPBinding;\n import java.io.IOException;\nimport java.io.InputStream;\n\n/**\n * This is an EJB 3 style pojo stateless session bean\n * Every stateless session bean implementation must be annotated\n * using the annotation @Stateless\n * This EJB has a single interface: {@link AttachmentWs} a webservice interface.\n */\n@Stateless\n@WebService(\n portName = \"AttachmentPort\",\nserviceName = \"AttachmentWsService\",\ntargetNamespace = \"http://superbiz.org/wsdl\",\ne ndpointInterface = \"org.superbiz.attachment.AttachmentWs\")\n
svn commit: r1772522 [29/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/developer/tools/maven/tomee.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/developer/tools/maven/tomee.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/developer/tools/maven/tomee.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/developer/tools/maven/tomee.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,183 @@ += TomEE Maven Plugin +:jbake-date: 2016-03-16 +:jbake-type: page +:jbake-status: published +:jbake-tomeepdf: + +TomEE Maven Plugin is a set of goals for the development and to prepare to go in production: + +- `tomee:build` +- `tomee:exec` +- `tomee:configtest` +- `tomee:debug` +- `tomee:deploy` +- `tomee:exec` +- `tomee:list` +- `tomee:run` +- `tomee:start` +- `tomee:stop` +- `tomee:undeploy` + +=== Run + +The most commonly used goal, it allows to start a tomee with applications. Here is its configuration: + +[.table.table-bordered,options="header"] +|=== +|Name|Default|Description + +|synchronization|-|a synchronization (see after the table) +|synchronizations|-|list of synchronizations +|reloadOnUpdate|-|should the application be redeployed when a synchronization is triggered + +|skipCurrentProject|false|should current project not be considered as a deployable even if its packaging is compatible (war typically) +|tomeeVersion|auto, plugin one|which version of TomEE to use +|tomeeGroupId|org.apache.tomee|TomEE artifact groupId +|tomeeArtifactId|apache-tomee|TomEE artifact artifactId +|tomeeType|zip| the type of the TomEE artifact , only zip supported at the moment +|tomeeClassifier|webprofile|which flavor of TomEE to use (classifier) +|tomeeShutdownPort|read from server.xml|the shutdown port +|tomeeShutdownAttempts|60|how many times to wait for startup/shutdown (waits 1s in between) +|tomeeShutdownCommand|SHUTDOWN|the shutdown command +|tomeeAjpPort|read from the pom|the AJP port if needed +|tomeeHttpsPort|read from the pom|the HTTPS port if needed +|args|-|command line arguments (system properties, javaagent, JVM options ...) +|debug|-|start and wait for a remote debugger to connect +|debugPort|5005|used when debug to change the default port +|simpleLog|false|use one line logs +|extractWars|false|explode wars before starting +|stripWarVersion|true|remove the version from the war name +|stripVersion|false|remove the version from the artifact name whatever it is (even jar) +|webappResources|${project.basedir}/src/main/webapp|where web resources are +|webappClasses and classes|${project.build.outputDirectory}|where artifact binaries are +|catalinaBase|${project.build.directory}/apache-tomee|where to create the tomee instance +|context|-|name of the current artifact (rename the war from the maven name to this one) +|webappDir|webapps|path to webapps folder from tomee.base +|appDir|apps|path to apps folder from tomee.base +|libDir|lib|where is lib folder +|mainDir|${project.basedir}/src/main|used in openejb mode to change default config of conf/lib/bin folders to openejb instead of tomee +|config|${project.basedir}/src/main/tomee/conf|a conf folder synchronized with TomEE one +|bin|${project.basedir}/src/main/tomee/bin|a bin folder synchronized with TomEE one +|lib|${project.basedir}/src/main/tomee/lib|a lib folder synchronized with TomEE one +|systemVariables|-|a map of system properties +|classpaths|-|a list of additional entries for the startup classpath +|customizers|-|a list of customizers +|jsCustomizers|-|a list of js customizers (js scripts) +|groovyCustomizers|-|a list of groovy customizers (groovy scripts) +|webappDefaultConfig|false|auto config war oriented +|quickSession|true|session generation will use `Random` instead of `SecureRandom` (for dev) +|forceReloadable|false|ensure TomEE supports reloading/redeployment +|forceJspDevelopment|true|JSP will be auto-recompiled on changes +|libs|-|dependencies to add in lib, see after this table for advanced usage +|endorsedLibs|-|dependencies to add in endorsed, see after this table for advanced usage +|javaagents|-|javaagents to add on the JVM, supports maven coordinates +|persistJavaagents|false|should javaagent be saved or just use for this plugin run +|webapps|-|additional applicatinos to deploy +|warFile|${project.build.directory}/${project.build.finalName}.${project.packaging}|the war to deploy +|workWarFile|${project.build.directory}/${project.build.finalName}"|the exploded war to deploy +|removeDefaultWebapps|true| should default webapps (ROOT, docs, ...) be deleted +|deployOpenEjbApplication|false|should openejb internal application be deployed +|removeTomeeWebapp|true|should tomee webapp (with EJBd adapter) be deployed +|tomeeAlreadyInstalled|false|skip all the setup configuration +|ejbRemote|true|should EJBd be activated +|checkStarted|
svn commit: r1772522 [22/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo-active.png URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo-active.png?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo-active.png -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo-active.png -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo.png URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo.png?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo.png -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/logo.png -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/popup.jpg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/popup.jpg?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/popup.jpg -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/popup.jpg -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing1.jpg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing1.jpg?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing1.jpg -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing1.jpg -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing2.jpg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing2.jpg?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing2.jpg -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/pricing2.jpg -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1-hover.jpg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1-hover.jpg?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1-hover.jpg -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1-hover.jpg -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1.jpg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1.jpg?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/table-1.jpg
svn commit: r1772522 [1/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advanced
Author: rmannibucau Date: Sun Dec 4 11:01:40 2016 New Revision: 1772522 URL: http://svn.apache.org/viewvc?rev=1772522&view=rev Log: attempting a mobile menu Added: tomee/site/trunk/generators/site-tomee-ng/ tomee/site/trunk/generators/site-tomee-ng/.gitignore (with props) tomee/site/trunk/generators/site-tomee-ng/README.adoc (with props) tomee/site/trunk/generators/site-tomee-ng/examples.cache (with props) tomee/site/trunk/generators/site-tomee-ng/pom.xml (with props) tomee/site/trunk/generators/site-tomee-ng/src/ tomee/site/trunk/generators/site-tomee-ng/src/main/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Contributors.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Downloads.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Examples.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/JBake.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/PDFify.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/ServiceJarHelper.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/slf4j/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/slf4j/bridge/ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/slf4j/bridge/SLF4JBridgeHandler.java (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/bash (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/animate.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css.map (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/cardio.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/et-icons.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/idea.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/jqtree.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/normalize.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/owl.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/favicon.ico (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/favicon.png (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.eot (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.svg (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.ttf (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.woff (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/et-icons.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/css/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/css/font-awesome.min.css (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/FontAwesome.otf (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.eot (with props) tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.svg (with props) tomee/site/trunk/generators/site-tomee-ng/src/
svn commit: r1772522 [31/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/download.adoc -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/access-timeout-meta.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/access-timeout-meta.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/access-timeout-meta.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/access-timeout-meta.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,291 @@ += @AccessTimeout the Meta-Annotation Way +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example access-timeout-meta can be browsed at https://github.com/apache/tomee/tree/master/examples/access-timeout-meta + + +Any annotation that takes parameters can benefit from meta-annotations. Here we see how `@AccessTimeout` can be far more understandable and manageable through meta-annotations. +We'll use the link:access-timeout.html[access-timeout] example as our use-case. + +The value of the parameters supplied to `@AccessTimeout` have a dramatic affect on how what that annotation actually does. Moreover, `@AccessTimeout` has one of those designs +where `-1` and `0` have signifcantly different meanings. One means "wait forever", the other means "never wait". Only a lucky few can remember which is which on a daily basis. +For the rest of us it is a constant source of bugs. + +Meta-Annotations to the rescue! + += Creating the Meta-Annotations + +As a matter of best-practices, we will put our meta-annotations in a package called `api`, for this example that gives us `org.superbiz.accesstimeout.api`. The package `org.superbiz.api` would work just as well. + +The basic idea is to have a package where "approved' annotations are used and to prohibit usage of the non-meta versions of the annotations. All the real configuration will +then be centralized in the `api` package and changes to timeout values will be localized to that package and automatically be reflected throuhout the application. + +An interesting side-effect of this approach is that if the `api` package where the meta-annotation definitions exist is kept in a separate jar as well, then one can effectively +change the configuration of an entire application by simply replacing the `api` jar. + +== @Metatype The "root" Meta-Annotation + +As with all meta-annotation usage, you first need to create your own "root" meta-annotation. This is as easy as creating an annotation +named `Metatype` that is annotated with itself and has `ElementType.ANNOTATION_TYPE` as its target. + + + +[source,java] + +package org.superbiz.accesstimeout.api; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Metatype +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.ANNOTATION_TYPE) +public @interface Metatype { +} + + + +== @AwaitNever + +When the `@AccessTimeout` annotation has the value of `0` that has the implication that one should never wait to access the bean. If the bean is busy, the caller will immediately +receive an `ConcurrentAccessException`. This is hard to remember and definitely not self-documenting for those that never knew the details. + +To create a meta-annotation version of `@AccessTimeout(0)` we simply need to think of a good annotation name, create that annotation, and annotate it with both `@AccessTimeout` +and `@Metatype` + + +[source,java] + +package org.superbiz.accesstimeout.api; + +import javax.ejb.AccessTimeout; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Metatype +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) + +@AccessTimeout(0) +public @interface AwaitNever { +} + + + +== @AwaitForever + +Just as `0` carries the special meaning of "never wait", a value of `-1` means "wait forever." + +As long as we're being picky, which we can be with meta-annotations, +Technically "wait forever" is not the best description. The actual methods of the `javax.util.concurrent` APIs use "await" rather than "wait". One (wait) perphaps implies a +command to wait, which this is not, and the other (await) perhaps better implies that waiting is possible but not a certainty. So we will use "await" in our annotation names. + +We make our own `@AwaitForever` and annotate it with `@AccessTimeout(0)` and `@Metatype` + + +[source,java] + +package org.superbiz.accesstimeout.api; + +import javax.ejb.AccessTimeout; +import java.lan
svn commit: r1772522 [45/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-ws-security.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-ws-security.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-ws-security.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-ws-security.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,766 @@ += Webservice Ws Security +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example webservice-ws-security can be browsed at https://github.com/apache/tomee/tree/master/examples/webservice-ws-security + + +*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* + +== CalculatorImpl + + +[source,java] + +package org.superbiz.calculator; + +import javax.annotation.security.DeclareRoles; +import javax.annotation.security.RolesAllowed; +import javax.ejb.Stateless; +import javax.jws.WebService; + +/** + * This is an EJB 3 style pojo stateless session bean + * Every stateless session bean implementation must be annotated + * using the annotation @Stateless + * This EJB has a single interface: CalculatorWs a webservice interface. + */ +//START SNIPPET: code +@DeclareRoles(value = {"Administrator"}) +@Stateless +@WebService( +portName = "CalculatorPort", +serviceName = "CalculatorWsService", +targetNamespace = "http://superbiz.org/wsdl";, +endpointInterface = "org.superbiz.calculator.CalculatorWs") +public class CalculatorImpl implements CalculatorWs, CalculatorRemote { + +@RolesAllowed(value = {"Administrator"}) +public int sum(int add1, int add2) { +return add1 + add2; +} + +public int multiply(int mul1, int mul2) { +return mul1 * mul2; +} +} + + + +== CalculatorRemote + + +[source,java] + +package org.superbiz.calculator; + +import javax.ejb.Remote; + +@Remote +public interface CalculatorRemote { + +public int sum(int add1, int add2); + +public int multiply(int mul1, int mul2); +} + + + +== CalculatorWs + + +[source,java] + +package org.superbiz.calculator; + +import javax.jws.WebService; + +//END SNIPPET: code + +/** + * This is an EJB 3 webservice interface + * A webservice interface must be annotated with the @Local + * annotation. + */ +//START SNIPPET: code +@WebService(targetNamespace = "http://superbiz.org/wsdl";) +public interface CalculatorWs { + +public int sum(int add1, int add2); + +public int multiply(int mul1, int mul2); +} + + + +== ejb-jar.xml + + +[source,xml] + +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/ejb-jar_3_0.xsd"; + version="3.0" id="simple" metadata-complete="false"> + + + + + CalculatorImplTimestamp1way + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplTimestamp2ways + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplUsernameTokenPlainPassword + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplUsernameTokenHashedPassword + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplUsernameTokenPlainPasswordEncrypt + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplSign + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplEncrypt2ways + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplSign2ways + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + CalculatorImplEncryptAndSign2ways + org.superbiz.calculator.CalculatorWs + org.superbiz.calculator.CalculatorImpl + Stateless + Container + + + + + + + + + +== openejb-jar.xml + + +[source,xml] + +http://www.openejb.org/openejb-jar/1.1";> + + + + # webservice.security.realm + # webservice.security.securityRealm + # webservice.security.transportGarantee = NONE + webservice.security.authMethod =
svn commit: r1772522 [38/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/persistence-fragment.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/persistence-fragment.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/persistence-fragment.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/persistence-fragment.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,149 @@ += Persistence Fragment +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example persistence-fragment can be browsed at https://github.com/apache/tomee/tree/master/examples/persistence-fragment + + +*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* + +== Movie + + +[source,java] + +package org.superbiz.injection.jpa; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Movie { +@Id +@GeneratedValue +private long id; +private String director; +private String title; +private int year; + +public Movie() { +// no-op +} + +public Movie(String director, String title, int year) { +this.director = director; +this.title = title; +this.year = year; +} + +public long getId() { +return id; +} + +public String getDirector() { +return director; +} + +public void setDirector(String director) { +this.director = director; +} + +public String getTitle() { +return title; +} + +public void setTitle(String title) { +this.title = title; +} + +public int getYear() { +return year; +} + +public void setYear(int year) { +this.year = year; +} +} + + + +== persistence-fragment.xml + + +[source,xml] + + + +org.superbiz.injection.jpa.Movie +true + + + + + + +== MoviesTest + + +[source,java] + +package org.superbiz.injection.jpa; + +import org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory; +import org.junit.Test; + +import javax.ejb.embeddable.EJBContainer; +import javax.naming.Context; +import javax.persistence.EntityManagerFactory; +import javax.persistence.PersistenceUnit; +import java.util.Properties; + +import static org.junit.Assert.assertTrue; + +public class MoviesTest { +@PersistenceUnit +private EntityManagerFactory emf; + +@Test +public void test() throws Exception { +final Properties p = new Properties(); +p.put("movieDatabase", "new://Resource?type=DataSource"); +p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver"); +p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb"); + +final EJBContainer container = EJBContainer.createEJBContainer(p); +final Context context = container.getContext(); +context.bind("inject", this); + +assertTrue(((ReloadableEntityManagerFactory) emf).getManagedClasses().contains(Movie.class.getName())); + +container.close(); +} +} + + + +== persistence.xml + + +[source,xml] + +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";> + +movieDatabase +movieDatabaseUnmanaged + + + + + + + + Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/persistence-fragment.adoc -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/pojo-webservice.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/pojo-webservice.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/pojo-webservice.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/pojo-webservice.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,9 @@ += pojo-webservice +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example pojo-webservice can be browsed at https://github.com/apache/tomee/tree/master/examples/pojo-webservice + +No README.md yet, be the first to contribute one! Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/pojo-webservice.adoc -- svn:executable = *
svn commit: r1772522 [44/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-attachments.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-attachments.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-attachments.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/webservice-attachments.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,234 @@ += Webservice Attachments +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example webservice-attachments can be browsed at https://github.com/apache/tomee/tree/master/examples/webservice-attachments + + +*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* + +== AttachmentImpl + + +[source,java] + +package org.superbiz.attachment; + +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.ejb.Stateless; +import javax.jws.WebService; +import javax.xml.ws.BindingType; +import javax.xml.ws.soap.SOAPBinding; +import java.io.IOException; +import java.io.InputStream; + +/** + * This is an EJB 3 style pojo stateless session bean + * Every stateless session bean implementation must be annotated + * using the annotation @Stateless + * This EJB has a single interface: {@link AttachmentWs} a webservice interface. + */ +@Stateless +@WebService( +portName = "AttachmentPort", +serviceName = "AttachmentWsService", +targetNamespace = "http://superbiz.org/wsdl";, +endpointInterface = "org.superbiz.attachment.AttachmentWs") +@BindingType(value = SOAPBinding.SOAP12HTTP_MTOM_BINDING) +public class AttachmentImpl implements AttachmentWs { + +public String stringFromBytes(byte[] data) { +return new String(data); +} + +public String stringFromDataSource(DataSource source) { + +try { +InputStream inStr = source.getInputStream(); +int size = inStr.available(); +byte[] data = new byte[size]; +inStr.read(data); +inStr.close(); +return new String(data); +} catch (IOException e) { +e.printStackTrace(); +} +return ""; +} + +public String stringFromDataHandler(DataHandler handler) { + +try { +return (String) handler.getContent(); +} catch (IOException e) { +e.printStackTrace(); +} +return ""; +} +} + + + +== AttachmentWs + + +[source,java] + +package org.superbiz.attachment; + +import javax.activation.DataHandler; +import javax.jws.WebService; + +/** + * This is an EJB 3 webservice interface to send attachments throughout SAOP. + */ +@WebService(targetNamespace = "http://superbiz.org/wsdl";) +public interface AttachmentWs { + +public String stringFromBytes(byte[] data); + +// Not working at the moment with SUN saaj provider and CXF +//public String stringFromDataSource(DataSource source); + +public String stringFromDataHandler(DataHandler handler); +} + + + +== ejb-jar.xml + + +[source,xml] + + + + + +== AttachmentTest + + +[source,java] + +package org.superbiz.attachment; + +import junit.framework.TestCase; + +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.mail.util.ByteArrayDataSource; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.xml.namespace.QName; +import javax.xml.ws.BindingProvider; +import javax.xml.ws.Service; +import javax.xml.ws.soap.SOAPBinding; +import java.net.URL; +import java.util.Properties; + +public class AttachmentTest extends TestCase { + +//START SNIPPET: setup +private InitialContext initialContext; + +protected void setUp() throws Exception { + +Properties properties = new Properties(); +properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory"); +properties.setProperty("openejb.embedded.remotable", "true"); + +initialContext = new InitialContext(properties); +} +//END SNIPPET: setup + +/** + * Create a webservice client using wsdl url + * + * @throws Exception + */ +//START SNIPPET: webservice +public void testAttachmentViaWsInterface() throws Exception { +Service service = Service.create( +new URL("http://127.0.0.1:4204/AttachmentImpl?wsdl";), +new QName("http://superbiz.org/wsdl";, "AttachmentWsService")); +assertNotNull(service); + +AttachmentWs ws = service.getPort(AttachmentWs.class); + +// retrieve the SOAPBinding +SOAPBinding binding = (SOAPBinding) ((BindingProvider) ws).getBinding(); +binding.setMTOMEnabled(
svn commit: r1772522 [35/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/ejb-examples.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/ejb-examples.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/ejb-examples.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/ejb-examples.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,1188 @@ += EJB Examples +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example ejb-examples can be browsed at https://github.com/apache/tomee/tree/master/examples/ejb-examples + + +*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* + +== AnnotatedEJB + + +[source,java] + +package org.superbiz.servlet; + +import javax.annotation.Resource; +import javax.ejb.LocalBean; +import javax.ejb.Stateless; +import javax.sql.DataSource; + +@Stateless +@LocalBean +public class AnnotatedEJB implements AnnotatedEJBLocal, AnnotatedEJBRemote { +@Resource +private DataSource ds; + +private String name = "foo"; + +public String getName() { +return name; +} + +public void setName(String name) { +this.name = name; +} + +public DataSource getDs() { +return ds; +} + +public void setDs(DataSource ds) { +this.ds = ds; +} + +public String toString() { +return "AnnotatedEJB[name=" + name + "]"; +} +} + + + +== AnnotatedEJBLocal + + +[source,java] + +package org.superbiz.servlet; + +import javax.ejb.Local; +import javax.sql.DataSource; + +@Local +public interface AnnotatedEJBLocal { +String getName(); + +void setName(String name); + +DataSource getDs(); + +void setDs(DataSource ds); +} + + + +== AnnotatedEJBRemote + + +[source,java] + +package org.superbiz.servlet; + +import javax.ejb.Remote; + +@Remote +public interface AnnotatedEJBRemote { +String getName(); + +void setName(String name); +} + + + +== AnnotatedServlet + + +[source,java] + +package org.superbiz.servlet; + +import javax.annotation.Resource; +import javax.ejb.EJB; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; +import java.io.IOException; + +public class AnnotatedServlet extends HttpServlet { +@EJB +private AnnotatedEJBLocal localEJB; + +@EJB +private AnnotatedEJBRemote remoteEJB; + +@EJB +private AnnotatedEJB localbeanEJB; + +@Resource +private DataSource ds; + + +protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { +response.setContentType("text/plain"); +ServletOutputStream out = response.getOutputStream(); + +out.println("LocalBean EJB"); +out.println("@EJB=" + localbeanEJB); +if (localbeanEJB != null) { +out.println("@EJB.getName()=" + localbeanEJB.getName()); +out.println("@EJB.getDs()=" + localbeanEJB.getDs()); +} +out.println("JNDI=" + lookupField("localbeanEJB")); +out.println(); + +out.println("Local EJB"); +out.println("@EJB=" + localEJB); +if (localEJB != null) { +out.println("@EJB.getName()=" + localEJB.getName()); +out.println("@EJB.getDs()=" + localEJB.getDs()); +} +out.println("JNDI=" + lookupField("localEJB")); +out.println(); + +out.println("Remote EJB"); +out.println("@EJB=" + remoteEJB); +if (localEJB != null) { +out.println("@EJB.getName()=" + remoteEJB.getName()); +} +out.println("JNDI=" + lookupField("remoteEJB")); +out.println(); + + +out.println("DataSource"); +out.println("@Resource=" + ds); +out.println("JNDI=" + lookupField("ds")); +} + +private Object lookupField(String name) { +try { +return new InitialContext().lookup("java:comp/env/" + getClass().getName() + "/" + name); +} catch (NamingException e) { +return null; +} +} +} + + + +== ClientHandler + + +[source,java] + +package org.superbiz.servlet; + +import javax.xml.ws.handler.Handler; +import javax.xml.ws.handler.MessageContext; + +public class ClientHandler implements Handler { +public boolean handleMessage(MessageContext messageContext) { +WebserviceServlet.write("ClientHandler handleMessage"); +return true; +} + +public void close(MessageContext messageContext) { +Webserv
svn commit: r1772522 [28/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/advanced/tomee-embedded/index.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/advanced/tomee-embedded/index.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/advanced/tomee-embedded/index.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/advanced/tomee-embedded/index.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,223 @@ += TomEE Embedded +:jbake-date: 2016-03-16 +:jbake-type: page +:jbake-status: published +:jbake-tomeepdf: + +TomEE Embedded is based on Tomcat embedded and starts a real TomEE in the launching JVM. It is also +able to deploy the classpath as a webapp and to use either `META-INF/resources` or a folder as web resources. + +Here is a basic programmatic usage based on `org.apache.tomee.embedded.Container` class: + +[source,java] + +try (final Container container = new Container(new Configuration()).deployClasspathAsWebApp()) { +System.out.println("Started on http://localhost:"; + container.getConfiguration().getHttpPort()); + +// do something or wait until the end of the application +} + + +All EE features are then accessible directly in the same JVM. + +== TomEE Embedded Configuration + +The default configuration allows to start tomee without issue but you can desire to customize some of them. + +[.table.table-bordered,options="header"] +|=== +| Name | Default | Description +|httpPort | 8080| http port +|stopPort | 8005| shutdown port +|host |localhost| host +|dir|-|where to create a file hierarchy for tomee (conf, temp, ...) +|serverXml|-|which server.xml to use +|keepServerXmlAsThis|false|don't adjust ports/host from the configuration and keep the ones in server.xml +|properties|-|container properties +|quickSession | true|use Random instead of SecureRandom (for dev) +|skipHttp|false|don't use the http connector +|httpsPort | 8443|https potr +|ssl|false| activate https +|withEjbRemote|false|use EJBd +|keystoreFile|-|https keystore location +|keystorePass|-|https keystore password +|keystoreType |JKS|https keystore type +|clientAuth|-|https client auth +|keyAlias|-|https alias +|sslProtocol|-|SSL protocol for https connector +|webXml|-|default web.xml to use +|loginConfig|-|which LoginConfig to use, relies on `org.apache.tomee.embedded.LoginConfigBuilder` to create it +|securityConstraints|-|add some security constraints, use `org.apache.tomee.embedded.SecurityConstaintBuilder` to build them +|realm|-|which realm to use (useful to switch to `JAASRealm` for instance) without modifying the application +|deployOpenEjbApp|false|should internal openejb application be delpoyed +|users|-|a map of user/password +|roles|-|a map of role/users +|tempDir|${java.io.tmpdir}/tomee-embedded_${timestamp}|tomcat needs a docBase, in case you don't provide one one will be created there +|webResourceCached |true|should web resources be cached by tomcat (set false in frontend dev) +|configuration-location|-|location (classpath or file) to a .properties to configure the server +[pre-task|-|Runnable or org.apache.tomee.embedded.LifecycleTask implementations to execute before the container starts +|classes-filter|-|implementation of a custom xbean Filter to ignore not desired classes during scanning +|basic|-|set /* under BASIC authentication for the realm "Security", authentication role being "*" +|=== + +Note: passing to `Container` constructor a `Configuration` it will start the container automatically but using `setup(Configuration)` +to initialize the configuration you will need to call `start()`. + +You can also pass through the properties `connector.xxx` and `connector.attributes.xxx` to customize connector(s) +configuration directly. + +== Standalone applications or TomEE Embedded provided main(String[]) + +Deploying an application in a server is very nice cause the application is generally small and it allows to update the +container without touching the application (typically insanely important in case of security issues for instance). + +However sometimes you don't have the choice so TomEE Embedded provides a built-in `main(String[])`. Here are its options: + +NOTE: this is still a TomEE so all system properties work (for instance to create a resource). + +[.table.table-bordered,options="header"] +|=== +|Name|Default|Description +|--path|-|location of application(s) to deploy +|--context|-|Context name for applications (same order than paths) +|-p or --port|8080|http port +|-s or --shutdown|8005|shutdown port +|-d or --directory|./.apache-tomee|tomee work directory +|-c or --as-war|-|deploy classpath as a war +|-b or --doc-base|-|where web resources are for classpath deployment +|--renaming|-|for fat war only, is renaming of the context supported +|--serverxml|-|the server.xml location +|-
svn commit: r1772522 [27/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/admin/configuration/containers.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/admin/configuration/containers.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/admin/configuration/containers.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/admin/configuration/containers.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,585 @@ += Resources +:jbake-date: 2016-03-16 +:jbake-type: page +:jbake-status: published +:jbake-tomeepdf: + +All containers will be created automatically - which means you don't need to define them +if you don't need to tune their configuration - when a bean of their type if found. + +To avoid that use `openejb.offline` property and set it to `true`. See link:server.html[Server Configuration] for more detail. + +=== @Stateless + +A `@Stateless` container. + +Declarable in tomee.xml via + +[source,xml] + + +AccessTimeout = 30 seconds +MaxSize = 10 +MinSize = 0 +StrictPooling = true +MaxAge = 0 hours +ReplaceAged = true +ReplaceFlushed = false +MaxAgeOffset = -1 +IdleTimeout = 0 minutes +GarbageCollection = false +SweepInterval = 5 minutes +CallbackThreads = 5 +CloseTimeout = 5 minutes +UseOneSchedulerThreadByBean = false +EvictionThreads = 1 + + + +Declarable in properties via + +[source,bash] + +Foo = new://Container?type=STATELESS +Foo.AccessTimeout = 30 seconds +Foo.MaxSize = 10 +Foo.MinSize = 0 +Foo.StrictPooling = true +Foo.MaxAge = 0 hours +Foo.ReplaceAged = true +Foo.ReplaceFlushed = false +Foo.MaxAgeOffset = -1 +Foo.IdleTimeout = 0 minutes +Foo.GarbageCollection = false +Foo.SweepInterval = 5 minutes +Foo.CallbackThreads = 5 +Foo.CloseTimeout = 5 minutes +Foo.UseOneSchedulerThreadByBean = false +Foo.EvictionThreads = 1 + + + Configuration + += AccessTimeout + +Specifies the time an invokation should wait for an instance +of the pool to become available. + +After the timeout is reached, if an instance in the pool cannot +be obtained, the method invocation will fail. + +Usable time units: nanoseconds, microsecons, milliseconds, +seconds, minutes, hours, days. Or any combination such as +"1 hour and 27 minutes and 10 seconds" + +Any usage of the `javax.ejb.AccessTimeout` annotation will +override this setting for the bean or method where the +annotation is used. + += MaxSize + +Specifies the size of the bean pools for this stateless +SessionBean container. If StrictPooling is not used, instances +will still be created beyond this number if there is demand, but +they will not be returned to the pool and instead will be +immediately destroyed. + += MinSize + +Specifies the minimum number of bean instances that should be in +the pool for each bean. Pools are prefilled to the minimum on +startup. Note this will create start order dependencies between +other beans that also eagerly start, such as other `@Stateless` +beans with a minimum or `@Singleton` beans using `@Startup`. The +start order. + +The minimum pool size is rigidly maintained. Instances in the +minimum side of the pool are not eligible for `IdleTimeout` or +`GarbageCollection`, but are subject to `MaxAge` and flushing. + +If the pool is flushed it is immediately refilled to the minimum +size with `MaxAgeOffset` applied. If an instance from the minimum +side of the pool reaches its `MaxAge`, it is also immediately +replaced. Replacement is done in a background queue using the +number of threads specified by `CallbackThreads`. + += StrictPooling + +StrictPooling tells the container what to do when the pool +reaches it's maximum size and there are incoming requests that +need instances. + +With strict pooling, requests will have to wait for instances to +become available. The pool size will never grow beyond the the +set `MaxSize` value. The maximum amount of time a request should +wait is specified via the `AccessTimeout` setting. + +Without strict pooling, the container will create temporary +instances to meet demand. The instances will last for just one +method invocation and then are removed. + +Setting `StrictPooling` to `false` and `MaxSize` to `0` will result in +no pooling. Instead instances will be created on demand and live +for exactly one method call before being removed. + += MaxAge + +Specifies the maximum time that an instance should live before +it should be retired and removed from use. This will happen +gracefully. Useful for situations where bean instances are +designed to hold potentially expensive resources such as memory +or file handles and need to be periodically cleared out. + +Usable time units: nanoseconds, microsecons, milliseconds, +seconds, minutes, hours, days. Or any combination such as +`1 hour and 27 minut
svn commit: r1772522 [20/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.svg -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.ttf URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.ttf?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.ttf -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.ttf -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.woff URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.woff?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.woff -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/ElegantIcons.woff -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/et-icons.css URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/et-icons.css?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/et-icons.css (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/eleganticons/et-icons.css Sun Dec 4 11:01:40 2016 @@ -0,0 +1,1159 @@ +@font-face { + font-family: 'ElegantIcons'; + src:url('ElegantIcons.eot'); + src:url('ElegantIcons.eot?#iefix') format('embedded-opentype'), + url('ElegantIcons.woff') format('woff'), + url('ElegantIcons.ttf') format('truetype'), + url('ElegantIcons.svg#ElegantIcons') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* Use the following CSS code if you want to use data attributes for inserting your icons */ +[data-icon]:before { + font-family: 'ElegantIcons'; + content: attr(data-icon); + speak: none; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Use the following CSS code if you want to have a class per icon */ +/* +Instead of a list of all class selectors, +you can use the generic selector below, but it's slower: +[class*="your-class-prefix"] { +*/ +.arrow_up, .arrow_down, .arrow_left, .arrow_right, .arrow_left-up, .arrow_right-up, .arrow_right-down, .arrow_left-down, .arrow-up-down, .arrow_up-down_alt, .arrow_left-right_alt, .arrow_left-right, .arrow_expand_alt2, .arrow_expand_alt, .arrow_condense, .arrow_expand, .arrow_move, .arrow_carrot-up, .arrow_carrot-down, .arrow_carrot-left, .arrow_carrot-right, .arrow_carrot-2up, .arrow_carrot-2down, .arrow_carrot-2left, .arrow_carrot-2right, .arrow_carrot-up_alt2, .arrow_carrot-down_alt2, .arrow_carrot-left_alt2, .arrow_carrot-right_alt2, .arrow_carrot-2up_alt2, .arrow_carrot-2down_alt2, .arrow_carrot-2left_alt2, .arrow_carrot-2right_alt2, .arrow_triangle-up, .arrow_triangle-down, .arrow_triangle-left, .arrow_triangle-right, .arrow_triangle-up_alt2, .arrow_triangle-down_alt2, .arrow_triangle-left_alt2, .arrow_triangle-right_alt2, .arrow_back, .icon_minus-06, .icon_plus, .icon_close, .icon_check, .icon_minus_alt2, .icon_plus_alt2, .icon_close_alt2, .icon_check_alt2, .icon_zoom-out_alt , .icon_zoom-in_alt, .icon_search, .icon_box-empty, .icon_box-selected, .icon_minus-box, .icon_plus-box, .icon_box-checked, .icon_circle-empty, .icon_circle-slelected, .icon_stop_alt2, .icon_stop, .icon_pause_alt2, .icon_pause, .icon_menu, .icon_menu-square_alt2, .icon_menu-circle_alt2, .icon_ul, .icon_ol, .icon_adjust-horiz, .icon_adjust-vert, .icon_document_alt, .icon_documents_alt, .icon_pencil, .icon_pencil-edit_alt, .icon_pencil-edit, .icon_folder-alt, .icon_
svn commit: r1772522 [34/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/deltaspike-i18n.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/deltaspike-i18n.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/deltaspike-i18n.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/deltaspike-i18n.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,9 @@ += deltaspike-i18n +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example deltaspike-i18n can be browsed at https://github.com/apache/tomee/tree/master/examples/deltaspike-i18n + +No README.md yet, be the first to contribute one! Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/deltaspike-i18n.adoc -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/dynamic-dao-implementation.adoc URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/dynamic-dao-implementation.adoc?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/dynamic-dao-implementation.adoc (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/content/examples/dynamic-dao-implementation.adoc Sun Dec 4 11:01:40 2016 @@ -0,0 +1,384 @@ += Dynamic DAO Implementation +:jbake-date: 2016-09-06 +:jbake-type: page +:jbake-tomeepdf: +:jbake-status: published + +Example dynamic-dao-implementation can be browsed at https://github.com/apache/tomee/tree/master/examples/dynamic-dao-implementation + + +Many aspects of Data Access Objects (DAOs) are very repetitive and boiler plate. As a fun and experimental feature, TomEE supports dynamically implementing an interface +that is seen to have standard DAO-style methods. + +The interface has to be annotated with @PersistenceContext to define which EntityManager to use. + +Methods should respect these conventions: + + * void save(Foo foo): persist foo + * Foo update(Foo foo): merge foo + * void delete(Foo foo): remove foo, if foo is detached it tries to attach it + * Collection|Foo namedQuery(String name[, Map params, int first, int max]): run the named query called name, params contains bindings, first and max are used for magination. Last three parameters are optionnals + * Collection|Foo nativeQuery(String name[, Map params, int first, int max]): run the native query called name, params contains bindings, first and max are used for magination. Last three parameters are optionnals + * Collection|Foo query(String value [, Map params, int first, int max]): run the query put as first parameter, params contains bindings, first and max are used for magination. Last three parameters are optionnals + * Collection findAll([int first, int max]): find all Foo, parameters are used for pagination + * Collection findByBar1AndBar2AndBar3( bar1, bar2, bar3 [, int first, int max]): find all Foo with specified field values for bar1, bar2, bar3. + +Dynamic finder can have as much as you want field constraints. For String like is used and for other type equals is used. + += Example + +== User + + +[source,java] + +package org.superbiz.dynamic; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; + +@Entity +@NamedQueries({ +@NamedQuery(name = "dynamic-ejb-impl-test.query", query = "SELECT u FROM User AS u WHERE u.name LIKE :name"), +@NamedQuery(name = "dynamic-ejb-impl-test.all", query = "SELECT u FROM User AS u") +}) +public class User { +@Id +@GeneratedValue +private long id; +private String name; +private int age; + +public long getId() { +return id; +} + +public void setId(long id) { +this.id = id; +} + +public String getName() { +return name; +} + +public void setName(String name) { +this.name = name; +} + +public int getAge() { +return age; +} + +public void setAge(int age) { +this.age = age; +} +} + + + +== UserDao + + +[source,java] + +package org.superbiz.dynamic; + + +import javax.ejb.Stateless; +import javax.persistence.PersistenceContext; +import java.util.Collection; +import java.util.Map; + +@Stateless +@PersistenceContext(name = "dynamic") +public interface UserDao { +User findById(long id); + +Collection findByName(String name); + +Collection findByNameAndAge(String name, int age); + +Collection findAll(); + +Colle
svn commit: r1772522 [18/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css.map URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css.map?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css.map (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css.map Sun Dec 4 11:01:40 2016 @@ -0,0 +1 @@ [... 3 lines stripped ...] Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/bootstrap.css.map -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/cardio.css URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/cardio.css?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/cardio.css (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/css/cardio.css Sun Dec 4 11:01:40 2016 @@ -0,0 +1,1173 @@ +@import url(http://fonts.googleapis.com/css?family=Roboto:300,400,500,700); +body { + font-family: 'Roboto', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif; + font-size: 14px; + overflow-x: hidden; + color: #2a3237; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.parallax { + position: absolute; + overflow: hidden; + width: 100%; + -webkit-transform: translateZ(0); + -ms-transform: translateZ(0); + transform: translateZ(0); +} + +.parallax img { + width: 100%; + height: 100%; +} +/* Preloader */ + +.preloader { + position: fixed; + z-index: ; + width: 100%; + height: 100%; + background-color: white; +} + +.preloader img { + position: absolute; + top: calc(50% - 32px); + left: calc(50% - 32px); +} + +.preloader div { + display: none; + /* Preload the Second Pricing Image */ + background: url(../img/pricing2.jpg) no-repeat px px; + background-position: px px; +} + +/* Typography */ + +.bigp { + font-size: 18px; + line-height: 1.5; + color: #80287a; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: 'Roboto', 'Avenir Next', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif; + position: relative; + margin: 10px 0; +} + +h1 { + font-size: 60px; +} + +h2 { + font-size: 48px; +} + +h3 { + font-size: 30px; +} + +h4 { + font-size: 24px; +} + +h5 { + font-size: 18px; +} + +h6 { + font-size: 16px; +} + +ul.white-list { + padding: 0; + list-style-type: none; +} + +ul.white-list li { + font-size: 18px; + margin: 10px 0; + color: #fff; +} + +ul.white-list li:before { + content: ' '; + position: relative; + top: -3px; + display: inline-block; + width: 6px; + height: 6px; + margin-right: 15px; + background: white; +} + +header { + position: relative; + width: 100%; + color: #80287a; + background: rgba(28, 36, 65, 0.93); + background: url('../img/header.jpg'); + background-size: cover; +} + +header .table { + display: table; + height: 100%; +} + +header .container { + height: 100%; +} + +header .header-text { + display: table-cell; + text-align: center; + vertical-align: middle; + color: #80287a; +} + +header .typed { + display: inline-block; + margin: 0; +} + +header .typed-cursor { + font-size: 60px; + display: inline-block; + margin: 0 10px; + color: #80287a; + -webkit-animation-name: flash; + animation-name: flash; + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +a { + text-decoration: none; + color: #80287a; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} +/* Navigation Bar ( Navbar ) */ + +nav.navbar { + position: absolute; + z-index: 9500; + width: 100%; + width: 100vw; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; +} + +nav.navbar .navbar-nav li.active a:not(.btn) { + color: #80287a !important; +} + +nav.navbar-fixed-top { + z-index: 9499; + top: 0; + padding-top: 10px; + padding-bottom: 10
svn commit: r1772522 [15/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Contributors.java URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Contributors.java?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Contributors.java (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/java/org/apache/tomee/website/Contributors.java Sun Dec 4 11:01:40 2016 @@ -0,0 +1,198 @@ +/* + * 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.tomee.website; + +import lombok.Builder; +import lombok.Data; +import org.apache.johnzon.jaxrs.JohnzonProvider; + +import javax.net.ssl.HttpsURLConnection; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.stream.Stream; + +import static java.util.Collections.emptyList; +import static java.util.Optional.ofNullable; +import static java.util.stream.Collectors.toList; + +public class Contributors { +private static final String GRAVATAR_BASE = "http://fr.gravatar.com/";; + +private Contributors() { +// no-op +} + +public static Contributor singleLoad(final WebTarget target, final String input) throws IOException { +final boolean committer = input.endsWith("*"); +final String mail = committer ? input.substring(0, input.length() - 1) : input; +final String hash = gravatarHash(mail); +final Response gravatar = target.path(hash + ".json").request(MediaType.APPLICATION_JSON_TYPE).get(); +if (gravatar.getStatus() != HttpsURLConnection.HTTP_OK) { +System.err.println("[ERROR] No gravatar for " + mail); +return null; +} +final Contributor contributor = ofNullable(gravatar.readEntity(Gravatar.class).getEntry()) +.map(e -> e[0]) +.map(e -> Contributor.builder() +.id(e.getId()) +.name( +ofNullable(e.getName()) +.map(n -> ofNullable(n.getFormatted()).orElse(ofNullable(n.getGivenName()).orElse("") + ofNullable(n.getFamilyName()).orElse(""))) +.orElseGet(() -> ofNullable(e.getDisplayName()).orElse(ofNullable(e.getPreferredUsername()).orElse(mail +.description(e.getAboutMe()) +.link( +Stream.concat( +ofNullable(e.getAccounts()) +.map(a -> Stream.of(a).map(l -> Link.builder().name(l.getShortname()).url(l.getUrl()).build()).collect(toList())) +.orElse(emptyList()).stream(), +ofNullable(e.getUrls()) +.map(a -> Stream.of(a).map(l -> Link.builder().name(l.getTitle()).url(l.getValue()).build()).collect(toList())) +.orElse(emptyList()).stream()) +.collect(toList())) +.gravatar("http://www.gravatar.com/avatar/"; + hash) +.build()) +.orElse(Contributor.builder().name(mail).id(mail).build()); +contributor.setCommitter(committer); +ofNullable(contributor.getLink()).ifPresent(l -> Collections.sort(l, (o1, o2) -> o1.getName().compareTo(o2.getName(; +return contributor; +}
svn commit: r1772522 [21/45] - in /tomee/site/trunk: content/ content/admin/ content/admin/cluster/ content/admin/configuration/ content/advanced/ content/advanced/applicationcomposer/ content/advance
Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.svg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.svg?rev=1772522&view=auto == --- tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.svg (added) +++ tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.svg Sun Dec 4 11:01:40 2016 @@ -0,0 +1,520 @@ + +http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"; > +http://www.w3.org/2000/svg";> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [... 326 lines stripped ...] Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.svg -- svn:executable = * Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.ttf URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.ttf?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.ttf -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.ttf -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.woff URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.woff?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.woff -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/fonts/font-awesome-4.1.0/fonts/fontawesome-webfont.woff -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/header.jpg URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/header.jpg?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/header.jpg -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/header.jpg -- svn:mime-type = application/octet-stream Added: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/loader.gif URL: http://svn.apache.org/viewvc/tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/loader.gif?rev=1772522&view=auto == Binary file - no diff available. Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/loader.gif -- svn:executable = * Propchange: tomee/site/trunk/generators/site-tomee-ng/src/main/jbake/assets/img/loader.gif -- svn:mime-type = application/octet-stream
svn commit: r1772515 - in /tomee/site/trunk/content: ./ admin/ admin/cluster/ admin/configuration/ advanced/ advanced/applicationcomposer/ advanced/client/ advanced/setup/ advanced/shading/ advanced/t
Author: rmannibucau Date: Sun Dec 4 10:20:37 2016 New Revision: 1772515 URL: http://svn.apache.org/viewvc?rev=1772515&view=rev Log: first ng import as main site [This commit notification would consist of 53 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.]
buildbot success in on tomee-1.7.x-ubuntu
The Buildbot has detected a restored build on builder tomee-1.7.x-ubuntu while building tomee. Full details are available at: https://ci.apache.org/builders/tomee-1.7.x-ubuntu/builds/162 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: bb_qnode5_ubuntu Build Reason: The SingleBranchScheduler scheduler named 'on-tomee-1.7.x-ubuntu-commit' triggered this build Build Source Stamp: [branch tomee-1.7.x] cc31914c989878d455e62464a93acdbd3c96b21a Blamelist: AndyGee ,Anonymous ,Jean-Louis Monteiro ,Jean-Louis Monteiro ,Jean-Louis Monteiro ,Jonathan Gallimore ,Kasun Gajasinghe ,Romain Manni-Bucau ,Romain Manni-Bucau ,Romain Manni-Bucau ,Romain manni-Bucau ,andy...@gmx.de ,rmannibucau Build succeeded! Sincerely, -The Buildbot
[jira] [Commented] (TOMEE-1977) MDB not listening to ActiveMQ messages
[ https://issues.apache.org/jira/browse/TOMEE-1977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15719636#comment-15719636 ] Romain Manni-Bucau commented on TOMEE-1977: --- Resources.xml prefixes names. Maybe the issue? > MDB not listening to ActiveMQ messages > -- > > Key: TOMEE-1977 > URL: https://issues.apache.org/jira/browse/TOMEE-1977 > Project: TomEE > Issue Type: Documentation > Components: TomEE Core Server >Affects Versions: 7.0.2 > Environment: Mac OS Sierra, >Reporter: Dev Null 52 >Priority: Trivial > > I have been trying for couple of days to have a trivial MDB example working > to listen on ActiveMQ Queue on default port. I am using TomEE 7.0.2. > I tried first using an embedded Active MQ 5.2.0 broker, then moved it as a > stand alone process using activemq-maven-plugin plugin to rule out Active MQ > out as a variable.I tried MDB with annotation using activation config, > without annotation but no avail. Examples online vary and none of them appear > to work. I am able to send to the Queue using a seperate Servlet and able to > validate then but not able to read. > Also I am seeing very strange Auto-linking resource-ref logs whereby I see > injections for Beans that do not have those instances/types defined -- so > very confused. > Plain JMS and EJB worked like a charm on JEE. Using Maven > META-INF/beans.xml ( empty ) > META-INF/ejb-jar.xml ( MDB and basic EJB descriptor ) > WEB-INF/resources.xml (ConnectionFactory and Queue definition pointing to > localhost ActiveMQ on default port ). > WEB-INF/web.xml ( empty ) > Please help if possible. -- This message was sent by Atlassian JIRA (v6.3.4#6332)