You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@onami.apache.org by sc...@apache.org on 2014/05/12 18:27:12 UTC
svn commit: r1594024 - in /onami/sandbox/persist/src:
main/java/org/apache/onami/persist/ test/java/org/apache/onami/persist/
Author: sclassen
Date: Mon May 12 16:27:11 2014
New Revision: 1594024
URL: http://svn.apache.org/r1594024
Log:
onami-persist: reduced visibility of JndiLookupHelper and introduced interface for PersistenceFilter
Added:
onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java (with props)
onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java (with props)
Removed:
onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterTest.java
Modified:
onami/sandbox/persist/src/main/java/org/apache/onami/persist/JndiLookupHelper.java
onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilter.java
onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java
Modified: onami/sandbox/persist/src/main/java/org/apache/onami/persist/JndiLookupHelper.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/main/java/org/apache/onami/persist/JndiLookupHelper.java?rev=1594024&r1=1594023&r2=1594024&view=diff
==============================================================================
--- onami/sandbox/persist/src/main/java/org/apache/onami/persist/JndiLookupHelper.java (original)
+++ onami/sandbox/persist/src/main/java/org/apache/onami/persist/JndiLookupHelper.java Mon May 12 16:27:11 2014
@@ -28,7 +28,7 @@ import javax.naming.NamingException;
* Helper class which does a JNDI lookup and handles exceptions.
*/
@Singleton
-public class JndiLookupHelper
+class JndiLookupHelper
{
/**
Modified: onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilter.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilter.java?rev=1594024&r1=1594023&r2=1594024&view=diff
==============================================================================
--- onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilter.java (original)
+++ onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilter.java Mon May 12 16:27:11 2014
@@ -19,17 +19,7 @@ package org.apache.onami.persist;
* under the License.
*/
-import com.google.inject.Inject;
-
import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import java.io.IOException;
-
-import static org.apache.onami.persist.Preconditions.checkNotNull;
/**
* Filter for use in container.
@@ -47,61 +37,7 @@ import static org.apache.onami.persist.P
* }
* </pre>
*/
-public class PersistenceFilter
- implements Filter
+public interface PersistenceFilter
+ extends Filter
{
-
- /**
- * Container of all known persistence unit and units of work.
- */
- private final AllPersistenceUnits persistenceUnitsContainer;
-
- /**
- * Constructor.
- *
- * @param persistenceUnitsContainer container of all known persistence unit and units of work.
- */
- @Inject
- PersistenceFilter( AllPersistenceUnits persistenceUnitsContainer )
- {
- checkNotNull( persistenceUnitsContainer );
- this.persistenceUnitsContainer = persistenceUnitsContainer;
- }
-
- /**
- * {@inheritDoc}
- */
- // @Override
- public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain )
- throws IOException, ServletException
- {
- try
- {
- persistenceUnitsContainer.beginAllInactiveUnitsOfWork();
- chain.doFilter( request, response );
- }
- finally
- {
- persistenceUnitsContainer.endAllUnitsOfWork();
- }
- }
-
- /**
- * {@inheritDoc}
- */
- // @Override
- public void init( FilterConfig filterConfig )
- throws ServletException
- {
- persistenceUnitsContainer.startAllStoppedPersistenceServices();
- }
-
- /**
- * {@inheritDoc}
- */
- // @Override
- public void destroy()
- {
- persistenceUnitsContainer.stopAllPersistenceServices();
- }
}
Added: onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java?rev=1594024&view=auto
==============================================================================
--- onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java (added)
+++ onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java Mon May 12 16:27:11 2014
@@ -0,0 +1,94 @@
+package org.apache.onami.persist;
+
+/*
+ * 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.
+ */
+
+import com.google.inject.Inject;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import java.io.IOException;
+
+import static org.apache.onami.persist.Preconditions.checkNotNull;
+
+/**
+ * Implementation of {@link PersistenceFilter}.
+ */
+public class PersistenceFilterImpl
+ implements PersistenceFilter
+{
+
+ /**
+ * Container of all known persistence unit and units of work.
+ */
+ private final AllPersistenceUnits persistenceUnitsContainer;
+
+ /**
+ * Constructor.
+ *
+ * @param persistenceUnitsContainer container of all known persistence unit and units of work.
+ */
+ @Inject
+ PersistenceFilterImpl( AllPersistenceUnits persistenceUnitsContainer )
+ {
+ checkNotNull( persistenceUnitsContainer );
+ this.persistenceUnitsContainer = persistenceUnitsContainer;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ // @Override
+ public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain )
+ throws IOException, ServletException
+ {
+ try
+ {
+ persistenceUnitsContainer.beginAllInactiveUnitsOfWork();
+ chain.doFilter( request, response );
+ }
+ finally
+ {
+ persistenceUnitsContainer.endAllUnitsOfWork();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ // @Override
+ public void init( FilterConfig filterConfig )
+ throws ServletException
+ {
+ persistenceUnitsContainer.startAllStoppedPersistenceServices();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ // @Override
+ public void destroy()
+ {
+ persistenceUnitsContainer.stopAllPersistenceServices();
+ }
+}
Propchange: onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceFilterImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java?rev=1594024&r1=1594023&r2=1594024&view=diff
==============================================================================
--- onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java (original)
+++ onami/sandbox/persist/src/main/java/org/apache/onami/persist/PersistenceModule.java Mon May 12 16:27:11 2014
@@ -72,6 +72,8 @@ public abstract class PersistenceModule
{
configurePersistence();
+ bind( PersistenceFilter.class ).to( PersistenceFilterImpl.class );
+
final AllPersistenceUnits allPersistenceUnits = new AllPersistenceUnits();
bind( AllPersistenceServices.class ).toInstance( allPersistenceUnits );
bind( AllUnitsOfWork.class ).toInstance( allPersistenceUnits );
Added: onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java
URL: http://svn.apache.org/viewvc/onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java?rev=1594024&view=auto
==============================================================================
--- onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java (added)
+++ onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java Mon May 12 16:27:11 2014
@@ -0,0 +1,111 @@
+package org.apache.onami.persist;
+
+/*
+ * 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.
+ */
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InOrder;
+
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test for {@link PersistenceFilterImpl}.
+ */
+public class PersistenceFilterImplTest
+{
+ private PersistenceFilterImpl sut;
+
+ private AllPersistenceUnits persistenceUnitsContainer;
+
+ @Before
+ public void setUp()
+ throws Exception
+ {
+ persistenceUnitsContainer = mock( AllPersistenceUnits.class );
+ sut = new PersistenceFilterImpl( persistenceUnitsContainer );
+ }
+
+ @Test
+ public void initShouldStartService()
+ throws Exception
+ {
+ sut.init( mock( FilterConfig.class ) );
+ verify( persistenceUnitsContainer ).startAllStoppedPersistenceServices();
+ }
+
+ @Test
+ public void destroyShouldStopService()
+ {
+ sut.destroy();
+ verify( persistenceUnitsContainer ).stopAllPersistenceServices();
+ }
+
+ @Test
+ public void doFilterShouldSpanUnitOfWork()
+ throws Exception
+ {
+ // given
+ final FilterChain chain = mock( FilterChain.class );
+ final InOrder inOrder = inOrder( persistenceUnitsContainer, chain );
+
+ final ServletRequest request = mock( ServletRequest.class );
+ final ServletResponse response = mock( ServletResponse.class );
+
+ // when
+ sut.doFilter( request, response, chain );
+
+ // then
+ inOrder.verify( persistenceUnitsContainer ).beginAllInactiveUnitsOfWork();
+ inOrder.verify( chain ).doFilter( request, response );
+ inOrder.verify( persistenceUnitsContainer ).endAllUnitsOfWork();
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void doFilterShouldEndUnitOfWorkInCaseOfException()
+ throws Exception
+ {
+ // given
+ final FilterChain chain = mock( FilterChain.class );
+ final InOrder inOrder = inOrder( persistenceUnitsContainer, chain );
+
+ final ServletRequest request = mock( ServletRequest.class );
+ final ServletResponse response = mock( ServletResponse.class );
+
+ doThrow( new RuntimeException() ).when( chain ).doFilter( request, response );
+
+ // when
+ try
+ {
+ sut.doFilter( request, response, chain );
+ }
+ // then
+ finally
+ {
+ inOrder.verify( persistenceUnitsContainer ).beginAllInactiveUnitsOfWork();
+ inOrder.verify( chain ).doFilter( request, response );
+ inOrder.verify( persistenceUnitsContainer ).endAllUnitsOfWork();
+ }
+ }
+}
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: onami/sandbox/persist/src/test/java/org/apache/onami/persist/PersistenceFilterImplTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain