View Code? Open in Web Editor
NEW
Testable Solutions for Modern Applications
Home Page: http://continuousdev.org/
Java 91.39%
CSS 0.33%
JavaScript 8.28%
continuous-enterprise-development's Introduction
Continuous Enterprise Development in Java
The official distribution for the book will be available in print and electronic formats via O’Reilly or various 3rd-party retailers in September 2013. The Early Access Release has been open for purchase since the Fall of 2012.
The print release of the book and its example is set to be given the Git tag of 1.0.0 in this repository, and development will continue thereafter in the master branch to correct errata and add supplmentary material including new chapters and use cases. The community is welcome to suggest or request topics for additional coverage.
We welcome your contributions and hope you find the material covered here to be of interest and benefit to your work and career in testable enterprise development.
continuous-enterprise-development's People
continuous-enterprise-development's Issues
Domain-Core contain of Core Repository/Identifiable interfaces and JPA impl of the same.
Not all Domains require JPA so the JPA bits should be splitted out in Domain-Core-Persistence
Can be used as Last-Modified in REST layer.
@ PrePersist
protected void onCreate () {
created = new Date ();
}
@ PreUpdate
protected void onUpdate () {
updated = new Date ();
}
From O'Reilly:
I did also notice that in Chapter01-Continuity.asciidoc, there's
a heading:
==== Reactive Error Handling
that should either be changed to have 3 equals signs or have another
heading with 3 equals signs inserted before it. The way it is now, it's
converted to a Docbook sect2 element, which is invalid if it isn't
preceded by a sect1 element. This means you would always need to first
have a heading with 3 equals signs before any heading with 4 equals
signs. I shouldn't stop you from generating PDFs in Atlas, but at some
point down the line I'm sure someone will ask you for clarification.
Just thought I'd bring it up ahead of time.
Ignore Sublime Text Editor files and "html" outputs.
Container
Runtime
Deployment
ClassLoading
Descriptors
Formats, war, jar, ear
Client
Multiple JVMs
Communication forms
Classpath control
And how/why this ties into:
Arquillian
Run Modes
Deployment
Container
Classpath setup
Dynamically discover linked Resources via Representation types on possible outgoing relations
User speaker|tracker Conference
User speaker|tracker Session
Conference located Venue
Conference attached Attachment
Session attached Attachment
Venue attached Attachment
Room attached Attachment
Split AngularJS impls in modules pr domain + core
setup servlet for loading resources via ClassLoader
setup Angular to use HTML5 mode, requires Servlet * mapping on server side
handle bookmark links for resources as PATH's
Setup a integration level test suite by consuming all other test suites and filtering out the Story tests.
Create a little extension (possible reuse the Arq Suite) to feed the 'empty' Story tests with a Deployment created from the final build.
Add update links to REST layer that reference a WebSocket endpoint for live push of events from server.
Multiple update links to filter:
global network-activity
** anything a Follower or Followee is doing
*** tracking/speaking/added etc
global conference/session updates
** anything anyone is adding to a conference/session
local conference
** anything happening to a given conference
*** sessions added, people tracking etc
Requires EE7
Go trough and standardize the Deployments.x for all modules.
Split them between Live and Test backends.
e.g.
CoreDomainDeployments.model()
All interfaces and model
CoreDomainDeployments.Live.module()
model() + Live backend
CoreDomainDeployments.Test.module()
model() + Test backend
Allows Modules that depend on the test-jar to make a choice of running against a shared TestDouble or the Live version.
Add bookmark links to main Resources. Similar to self, but URL pointing to a stable 'Find' resource based on type and id.
Used by gui to swap URI
JDK7 Required
Set JAVA_HOME to JDK7
Maven, MAVEN_HOME
Use Relation Domain model to link between the other domains
Sync content with GitHub repositories. Import initial proposal and working outline.
Validation on JPA level
Validation on REST level ?
JPA conference.duration.start|end == start|end in REST
Convert Representation to JPA then validate, JPA returns 'duration' should not be null. Representation only knows about start/end (which maps to a Duration).
Fire CDI Events on Create/Update/Delete
@ Inject Event <T > event ;
store (a ) {
event .fire (a )
}
23 :15 :39 ,324 WARN [org .hornetq .core .client ] (Finalizer ) HQ212016 : I am closing a core ClientSession you left open . Please make sure you close all ClientSessions explicitly before letting them go out of scope ! 1 ,411 ,185 ,703 : java .lang .Exception
at org .hornetq .core .client .impl .DelegatingSession .<init >(DelegatingSession .java :91 )
at org .hornetq .core .client .impl .ClientSessionFactoryImpl .createSessionInternal (ClientSessionFactoryImpl .java :912 )
at org .hornetq .core .client .impl .ClientSessionFactoryImpl .createSession (ClientSessionFactoryImpl .java :317 )
at org .hornetq .jms .client .HornetQConnection .authorize (HornetQConnection .java :648 )
at org .hornetq .jms .client .HornetQConnectionFactory .createConnectionInternal (HornetQConnectionFactory .java :676 )
at org .hornetq .jms .client .HornetQConnectionFactory .createConnection (HornetQConnectionFactory .java :107 )
at org .hornetq .jms .client .HornetQConnectionFactory .createConnection (HornetQConnectionFactory .java :102 )
at org .cedj .geekseek .service .smtp .SMTPMailService .queueMailForDelivery (SMTPMailService .java :109 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .as .ee .component .ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor .processInvocation (ManagedReferenceMethodInterceptorFactory .java :72 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .WeavedInterceptor .processInvocation (WeavedInterceptor .java :53 )
at org .jboss .as .ee .component .interceptors .UserInterceptorFactory$1 .processInvocation (UserInterceptorFactory .java :63 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .InterceptorContext$Invocation .proceed (InterceptorContext .java :385 )
at org .jboss .as .weld .ejb .Jsr299BindingsInterceptor .doMethodInterception (Jsr299BindingsInterceptor .java :130 )
at org .jboss .as .weld .ejb .Jsr299BindingsInterceptor .processInvocation (Jsr299BindingsInterceptor .java :138 )
at org .jboss .as .ee .component .interceptors .UserInterceptorFactory$1 .processInvocation (UserInterceptorFactory .java :63 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .WeavedInterceptor .processInvocation (WeavedInterceptor .java :53 )
at org .jboss .as .ee .component .interceptors .UserInterceptorFactory$1 .processInvocation (UserInterceptorFactory .java :63 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .invocationmetrics .ExecutionTimeInterceptor .processInvocation (ExecutionTimeInterceptor .java :43 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .InterceptorContext$Invocation .proceed (InterceptorContext .java :385 )
at org .jboss .as .ejb3 .concurrency .ContainerManagedConcurrencyInterceptor .processInvocation (ContainerManagedConcurrencyInterceptor .java :104 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .InterceptorContext$Invocation .proceed (InterceptorContext .java :385 )
at org .jboss .weld .ejb .AbstractEJBRequestScopeActivationInterceptor .aroundInvoke (AbstractEJBRequestScopeActivationInterceptor .java :46 )
at org .jboss .as .weld .ejb .EjbRequestScopeActivationInterceptor .processInvocation (EjbRequestScopeActivationInterceptor .java :84 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .InitialInterceptor .processInvocation (InitialInterceptor .java :21 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .ChainedInterceptor .processInvocation (ChainedInterceptor .java :61 )
at org .jboss .as .ee .component .interceptors .ComponentDispatcherInterceptor .processInvocation (ComponentDispatcherInterceptor .java :53 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .singleton .SingletonComponentInstanceAssociationInterceptor .processInvocation (SingletonComponentInstanceAssociationInterceptor .java :52 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .tx .CMTTxInterceptor .invokeInNoTx (CMTTxInterceptor .java :236 )
at org .jboss .as .ejb3 .tx .CMTTxInterceptor .supports (CMTTxInterceptor .java :375 )
at org .jboss .as .ejb3 .tx .CMTTxInterceptor .processInvocation (CMTTxInterceptor .java :219 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .interceptors .CurrentInvocationContextInterceptor .processInvocation (CurrentInvocationContextInterceptor .java :41 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .invocationmetrics .WaitTimeInterceptor .processInvocation (WaitTimeInterceptor .java :43 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .security .SecurityContextInterceptor .processInvocation (SecurityContextInterceptor .java :90 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .interceptors .ShutDownInterceptorFactory$1 .processInvocation (ShutDownInterceptorFactory .java :64 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .interceptors .LoggingInterceptor .processInvocation (LoggingInterceptor .java :59 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ee .component .NamespaceContextInterceptor .processInvocation (NamespaceContextInterceptor .java :50 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .as .ejb3 .component .interceptors .AdditionalSetupInterceptor .processInvocation (AdditionalSetupInterceptor .java :55 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .ContextClassLoaderInterceptor .processInvocation (ContextClassLoaderInterceptor .java :55 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .InterceptorContext .run (InterceptorContext .java :305 )
at org .wildfly .security .manager .WildFlySecurityManager .doChecked (WildFlySecurityManager .java :428 )
at org .wildfly .security .manager .AccessCheckingInterceptor .processInvocation (AccessCheckingInterceptor .java :63 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .InterceptorContext .run (InterceptorContext .java :305 )
at java .security .AccessController .doPrivileged (Native Method ) [rt .jar :1.7 .0_03 ]
at org .jboss .invocation .PrivilegedInterceptor .processInvocation (PrivilegedInterceptor .java :65 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .ChainedInterceptor .processInvocation (ChainedInterceptor .java :61 )
at org .jboss .as .ee .component .ViewService$View .invoke (ViewService .java :165 )
at org .jboss .as .ee .component .ViewDescription$1 .processInvocation (ViewDescription .java :182 )
at org .jboss .invocation .InterceptorContext .proceed (InterceptorContext .java :289 )
at org .jboss .invocation .ChainedInterceptor .processInvocation (ChainedInterceptor .java :61 )
at org .jboss .as .ee .component .ProxyInvocationHandler .invoke (ProxyInvocationHandler .java :72 )
at org .cedj .geekseek .service .smtp .SMTPMailService$$$view2 .queueMailForDelivery (Unknown Source )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .weld .util .reflection .Reflections .invokeAndUnwrap (Reflections .java :396 )
at org .jboss .weld .bean .proxy .EnterpriseBeanProxyMethodHandler .invoke (EnterpriseBeanProxyMethodHandler .java :108 )
at org .jboss .weld .bean .proxy .EnterpriseTargetBeanInstance .invoke (EnterpriseTargetBeanInstance .java :56 )
at org .jboss .weld .bean .proxy .InjectionPointPropagatingEnterpriseTargetBeanInstance .invoke (InjectionPointPropagatingEnterpriseTargetBeanInstance .java :63 )
at org .jboss .weld .bean .proxy .ProxyMethodHandler .invoke (ProxyMethodHandler .java :101 )
at org .cedj .geekseek .service .smtp .SMTPMailService$Proxy$_$$_Weld$EnterpriseProxy$ .queueMailForDelivery (Unknown Source )
at org .cedj .geekseek .service .smtp .SMTPMailServiceTestCase .testSmtpAsync (SMTPMailServiceTestCase .java :211 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .junit .runners .model .FrameworkMethod$1 .runReflectiveCall (FrameworkMethod .java :45 )
at org .junit .internal .runners .model .ReflectiveCallable .run (ReflectiveCallable .java :15 )
at org .junit .runners .model .FrameworkMethod .invokeExplosively (FrameworkMethod .java :42 )
at org .jboss .arquillian .junit .Arquillian$6$1 .invoke (Arquillian .java :270 )
at org .jboss .arquillian .container .test .impl .execution .LocalTestExecuter .execute (LocalTestExecuter .java :60 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .arquillian .core .impl .ObserverImpl .invoke (ObserverImpl .java :94 )
at org .jboss .arquillian .core .impl .EventContextImpl .invokeObservers (EventContextImpl .java :99 )
at org .jboss .arquillian .core .impl .EventContextImpl .proceed (EventContextImpl .java :81 )
at org .jboss .arquillian .core .impl .ManagerImpl .fire (ManagerImpl .java :135 )
at org .jboss .arquillian .core .impl .ManagerImpl .fire (ManagerImpl .java :115 )
at org .jboss .arquillian .core .impl .EventImpl .fire (EventImpl .java :67 )
at org .jboss .arquillian .container .test .impl .execution .ContainerTestExecuter .execute (ContainerTestExecuter .java :38 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .arquillian .core .impl .ObserverImpl .invoke (ObserverImpl .java :94 )
at org .jboss .arquillian .core .impl .EventContextImpl .invokeObservers (EventContextImpl .java :99 )
at org .jboss .arquillian .core .impl .EventContextImpl .proceed (EventContextImpl .java :81 )
at org .jboss .arquillian .test .impl .TestContextHandler .createTestContext (TestContextHandler .java :89 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .arquillian .core .impl .ObserverImpl .invoke (ObserverImpl .java :94 )
at org .jboss .arquillian .core .impl .EventContextImpl .proceed (EventContextImpl .java :88 )
at org .jboss .arquillian .test .impl .TestContextHandler .createClassContext (TestContextHandler .java :75 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .arquillian .core .impl .ObserverImpl .invoke (ObserverImpl .java :94 )
at org .jboss .arquillian .core .impl .EventContextImpl .proceed (EventContextImpl .java :88 )
at org .jboss .arquillian .test .impl .TestContextHandler .createSuiteContext (TestContextHandler .java :60 )
at sun .reflect .NativeMethodAccessorImpl .invoke0 (Native Method ) [rt .jar :1.7 .0_03 ]
at sun .reflect .NativeMethodAccessorImpl .invoke (NativeMethodAccessorImpl .java :57 ) [rt .jar :1.7 .0_03 ]
at sun .reflect .DelegatingMethodAccessorImpl .invoke (DelegatingMethodAccessorImpl .java :43 ) [rt .jar :1.7 .0_03 ]
at java .lang .reflect .Method .invoke (Method .java :601 ) [rt .jar :1.7 .0_03 ]
at org .jboss .arquillian .core .impl .ObserverImpl .invoke (ObserverImpl .java :94 )
at org .jboss .arquillian .core .impl .EventContextImpl .proceed (EventContextImpl .java :88 )
at org .jboss .arquillian .core .impl .ManagerImpl .fire (ManagerImpl .java :135 )
at org .jboss .arquillian .test .impl .EventTestRunnerAdaptor .test (EventTestRunnerAdaptor .java :111 )
at org .jboss .arquillian .junit .Arquillian$6 .evaluate (Arquillian .java :263 )
at org .jboss .arquillian .junit .Arquillian$4 .evaluate (Arquillian .java :226 )
at org .jboss .arquillian .junit .Arquillian .multiExecute (Arquillian .java :314 )
at org .jboss .arquillian .junit .Arquillian .access$100 (Arquillian .java :46 )
at org .jboss .arquillian .junit .Arquillian$5 .evaluate (Arquillian .java :240 )
at org .junit .runners .ParentRunner .runLeaf (ParentRunner .java :263 )
at org .junit .runners .BlockJUnit4ClassRunner .runChild (BlockJUnit4ClassRunner .java :68 )
at org .junit .runners .BlockJUnit4ClassRunner .runChild (BlockJUnit4ClassRunner .java :47 )
at org .junit .runners .ParentRunner$3 .run (ParentRunner .java :231 )
at org .junit .runners .ParentRunner$1 .schedule (ParentRunner .java :60 )
at org .junit .runners .ParentRunner .runChildren (ParentRunner .java :229 )
at org .junit .runners .ParentRunner .access$000 (ParentRunner .java :50 )
at org .junit .runners .ParentRunner$2 .evaluate (ParentRunner .java :222 )
at org .jboss .arquillian .junit .Arquillian$2 .evaluate (Arquillian .java :185 )
at org .jboss .arquillian .junit .Arquillian .multiExecute (Arquillian .java :314 )
at org .jboss .arquillian .junit .Arquillian .access$100 (Arquillian .java :46 )
at org .jboss .arquillian .junit .Arquillian$3 .evaluate (Arquillian .java :199 )
at org .junit .runners .ParentRunner .run (ParentRunner .java :300 )
at org .jboss .arquillian .junit .Arquillian .run (Arquillian .java :147 )
at org .junit .runner .JUnitCore .run (JUnitCore .java :157 )
at org .junit .runner .JUnitCore .run (JUnitCore .java :136 )
at org .jboss .arquillian .junit .container .JUnitTestRunner .execute (JUnitTestRunner .java :65 )
at org .jboss .arquillian .protocol .servlet .runner .ServletTestRunner .executeTest (ServletTestRunner .java :160 )
at org .jboss .arquillian .protocol .servlet .runner .ServletTestRunner .execute (ServletTestRunner .java :126 )
at org .jboss .arquillian .protocol .servlet .runner .ServletTestRunner .doGet (ServletTestRunner .java :90 )
at javax .servlet .http .HttpServlet .service (HttpServlet .java :687 )
at javax .servlet .http .HttpServlet .service (HttpServlet .java :790 )
at io .undertow .servlet .handlers .ServletHandler .handleRequest (ServletHandler .java :87 )
at io .undertow .servlet .handlers .FilterHandler$FilterChainImpl .doFilter (FilterHandler .java :130 )
at io .undertow .websockets .jsr .JsrWebSocketFilter .doFilter (JsrWebSocketFilter .java :138 )
at io .undertow .servlet .core .ManagedFilter .doFilter (ManagedFilter .java :56 )
at io .undertow .servlet .handlers .FilterHandler$FilterChainImpl .doFilter (FilterHandler .java :132 )
at io .undertow .servlet .handlers .FilterHandler .handleRequest (FilterHandler .java :85 )
at io .undertow .servlet .handlers .security .ServletSecurityRoleHandler .handleRequest (ServletSecurityRoleHandler .java :56 )
at io .undertow .server .HttpHandlers .executeHandler (HttpHandlers .java :46 )
at io .undertow .servlet .handlers .security .SSLInformationAssociationHandler .handleRequest (SSLInformationAssociationHandler .java :116 )
at io .undertow .servlet .handlers .ServletDispatchingHandler .handleRequest (ServletDispatchingHandler .java :36 )
at org .wildfly .extension .undertow .security .SecurityContextAssociationHandler .handleRequest (SecurityContextAssociationHandler .java :79 )
at io .undertow .security .handlers .AuthenticationCallHandler .handleRequest (AuthenticationCallHandler .java :52 )
at io .undertow .server .HttpHandlers .executeHandler (HttpHandlers .java :46 )
at io .undertow .security .handlers .AbstractConfidentialityHandler .handleRequest (AbstractConfidentialityHandler .java :46 )
at io .undertow .server .HttpHandlers .executeHandler (HttpHandlers .java :46 )
at io .undertow .servlet .handlers .security .CachedAuthenticatedSessionHandler .handleRequest (CachedAuthenticatedSessionHandler .java :66 )
at io .undertow .server .HttpHandlers .executeHandler (HttpHandlers .java :46 )
at io .undertow .security .handlers .SecurityInitialHandler .handleRequest (SecurityInitialHandler .java :71 )
at io .undertow .server .HttpHandlers .executeHandler (HttpHandlers .java :46 )
at io .undertow .server .handlers .PredicateHandler .handleRequest (PredicateHandler .java :26 )
at org .wildfly .extension .undertow .security .SecurityContextCreationHandler .handleRequest (SecurityContextCreationHandler .java :56 )
at io .undertow .server .HttpHandlers .executeHandler (HttpHandlers .java :46 )
at io .undertow .server .handlers .PredicateHandler .handleRequest (PredicateHandler .java :26 )
at io .undertow .servlet .handlers .ServletInitialHandler .handleFirstRequest (ServletInitialHandler .java :118 )
at io .undertow .servlet .handlers .ServletInitialHandler .dispatchRequest (ServletInitialHandler .java :106 )
at io .undertow .servlet .handlers .ServletInitialHandler .handleRequest (ServletInitialHandler .java :83 )
at io .undertow .server .HttpHandlers .executeRootHandler (HttpHandlers .java :52 )
at io .undertow .server .HttpServerExchange$1 .run (HttpServerExchange .java :544 )
at java .util .concurrent .ThreadPoolExecutor .runWorker (ThreadPoolExecutor .java :1145 ) [rt .jar :1.7 .0_03 ]
at java .util .concurrent .ThreadPoolExecutor$Worker .run (ThreadPoolExecutor .java :615 ) [rt .jar :1.7 .0_03 ]
at java .lang .Thread .run (Thread .java :722 ) [rt .jar :1.7 .0_03 ]
Integrate security with normal REST operations.
GET is open
PUT/POST/DELETE require auth.
Make sure auth is reflected in OPTIONS
Create the First JPA Use Case