diff --git a/core-java-modules/core-java-exceptions-2/src/main/java/com/baeldung/suppressed/ExceptionalResource.java b/core-java-modules/core-java-exceptions-2/src/main/java/com/baeldung/suppressed/ExceptionalResource.java new file mode 100644 index 0000000000..8892e097b1 --- /dev/null +++ b/core-java-modules/core-java-exceptions-2/src/main/java/com/baeldung/suppressed/ExceptionalResource.java @@ -0,0 +1,13 @@ +package com.baeldung.suppressed; + +public class ExceptionalResource implements AutoCloseable { + + public void processSomething() { + throw new IllegalArgumentException("Thrown from processSomething()"); + } + + @Override + public void close() throws Exception { + throw new NullPointerException("Thrown from close()"); + } +} diff --git a/core-java-modules/core-java-exceptions-2/src/main/java/com/baeldung/suppressed/SuppressedExceptionsDemo.java b/core-java-modules/core-java-exceptions-2/src/main/java/com/baeldung/suppressed/SuppressedExceptionsDemo.java new file mode 100644 index 0000000000..6ff23fd041 --- /dev/null +++ b/core-java-modules/core-java-exceptions-2/src/main/java/com/baeldung/suppressed/SuppressedExceptionsDemo.java @@ -0,0 +1,44 @@ +package com.baeldung.suppressed; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +public class SuppressedExceptionsDemo { + + public static void demoSuppressedException(String filePath) throws IOException { + FileInputStream fileIn = null; + try { + fileIn = new FileInputStream(filePath); + } catch (FileNotFoundException e) { + throw new IOException(e); + } finally { + fileIn.close(); + } + } + + public static void demoAddSuppressedException(String filePath) throws IOException { + Throwable firstException = null; + FileInputStream fileIn = null; + try { + fileIn = new FileInputStream(filePath); + } catch (IOException e) { + firstException = e; + } finally { + try { + fileIn.close(); + } catch (NullPointerException npe) { + if (firstException != null) { + npe.addSuppressed(firstException); + } + throw npe; + } + } + } + + public static void demoExceptionalResource() throws Exception { + try (ExceptionalResource exceptionalResource = new ExceptionalResource()) { + exceptionalResource.processSomething(); + } + } +} diff --git a/core-java-modules/core-java-exceptions-2/src/test/java/com/baeldung/suppressed/SuppressedExceptionsUnitTest.java b/core-java-modules/core-java-exceptions-2/src/test/java/com/baeldung/suppressed/SuppressedExceptionsUnitTest.java new file mode 100644 index 0000000000..7664ee6847 --- /dev/null +++ b/core-java-modules/core-java-exceptions-2/src/test/java/com/baeldung/suppressed/SuppressedExceptionsUnitTest.java @@ -0,0 +1,42 @@ +package com.baeldung.suppressed; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; + +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.junit.Test; +import static org.hamcrest.CoreMatchers.instanceOf; + +public class SuppressedExceptionsUnitTest { + + @Test(expected = NullPointerException.class) + public void givenNonExistentFileName_whenAttemptFileOpen_thenNullPointerException() throws IOException { + SuppressedExceptionsDemo.demoSuppressedException("/non-existent-path/non-existent-file.txt"); + } + + @Test + public void givenNonExistentFileName_whenAttemptFileOpenStoreSuppressed_thenSuppressedExceptionAvailable() { + try { + SuppressedExceptionsDemo.demoAddSuppressedException("/non-existent-path/non-existent-file.txt"); + } catch (Exception e) { + assertThat(e, instanceOf(NullPointerException.class)); + assertEquals(1, e.getSuppressed().length); + assertThat(e.getSuppressed()[0], instanceOf(FileNotFoundException.class)); + } + } + + @Test + public void whenUsingExceptionalResource_thenSuppressedExceptionAvailable() { + try { + SuppressedExceptionsDemo.demoExceptionalResource(); + } catch (Exception e) { + assertThat(e, instanceOf(IllegalArgumentException.class)); + assertEquals("Thrown from processSomething()", e.getMessage()); + assertEquals(1, e.getSuppressed().length); + assertThat(e.getSuppressed()[0], instanceOf(NullPointerException.class)); + assertEquals("Thrown from close()", e.getSuppressed()[0].getMessage()); + } + } +} diff --git a/libraries-3/pom.xml b/libraries-3/pom.xml index 4bb1a4fba1..a438d423e2 100644 --- a/libraries-3/pom.xml +++ b/libraries-3/pom.xml @@ -83,7 +83,6 @@ moshi-adapters ${moshi.version} - com.jcabi jcabi-aspects @@ -95,6 +94,16 @@ ${aspectjrt.version} runtime + + org.takes + takes + ${takes.version} + + + org.apache.velocity + velocity-engine-core + ${velocity-engine-core.version} + @@ -132,8 +141,55 @@ + + + src/main/webapp + true + + - + + + + reload + + + + src/main/resources + true + + + src/main/webapp + true + + + + + org.codehaus.mojo + exec-maven-plugin + ${exec-maven-plugin.version} + + + start-server + pre-integration-test + + java + + + + + com.baeldung.takes.TakesApp + false + + --port=${port} + + + + + + + + 1.78 1.18.6 @@ -151,5 +207,9 @@ 0.14.1 1.9.2 1.9.2 + + 1.19 + 2.2 + 1.6.0 diff --git a/libraries-3/src/main/java/com/baeldung/takes/TakesApp.java b/libraries-3/src/main/java/com/baeldung/takes/TakesApp.java new file mode 100644 index 0000000000..3c1407c291 --- /dev/null +++ b/libraries-3/src/main/java/com/baeldung/takes/TakesApp.java @@ -0,0 +1,42 @@ +package com.baeldung.takes; + +import java.io.IOException; +import java.sql.SQLException; + +import org.takes.Response; +import org.takes.facets.fallback.Fallback; +import org.takes.facets.fallback.FbChain; +import org.takes.facets.fallback.FbStatus; +import org.takes.facets.fallback.RqFallback; +import org.takes.facets.fallback.TkFallback; +import org.takes.facets.fork.FkRegex; +import org.takes.facets.fork.TkFork; +import org.takes.http.Exit; +import org.takes.http.FtBasic; +import org.takes.misc.Opt; +import org.takes.rs.RsText; + +public final class TakesApp { + + public static void main(final String... args) throws IOException, SQLException { + new FtBasic( + new TkFallback( + new TkFork( + new FkRegex("/", new TakesHelloWorld()), + new FkRegex("/index", new TakesIndex()), + new FkRegex("/contact", new TakesContact()) + ), + new FbChain( + new FbStatus(404, new RsText("Page Not Found")), + new FbStatus(405, new RsText("Method Not Allowed")), + new Fallback() { + @Override + public Opt route(final RqFallback req) { + return new Opt.Single(new RsText(req.throwable().getMessage())); + } + }) + ), 6060 + ).start(Exit.NEVER); + } + +} \ No newline at end of file diff --git a/libraries-3/src/main/java/com/baeldung/takes/TakesContact.java b/libraries-3/src/main/java/com/baeldung/takes/TakesContact.java new file mode 100644 index 0000000000..e083bc3dc6 --- /dev/null +++ b/libraries-3/src/main/java/com/baeldung/takes/TakesContact.java @@ -0,0 +1,22 @@ +package com.baeldung.takes; + +import java.io.IOException; + +import org.takes.Request; +import org.takes.Response; +import org.takes.Take; +import org.takes.rs.RsWithBody; +import org.takes.rs.RsWithStatus; +import org.takes.rs.RsWithType; + +public final class TakesContact implements Take { + + @Override + public Response act(Request req) throws IOException { + return new RsWithStatus( + new RsWithType( + new RsWithBody("Contact us at https://www.baeldung.com"), + "text/html"), 200); + } + +} diff --git a/libraries-3/src/main/java/com/baeldung/takes/TakesHelloWorld.java b/libraries-3/src/main/java/com/baeldung/takes/TakesHelloWorld.java new file mode 100644 index 0000000000..9d1346d3c1 --- /dev/null +++ b/libraries-3/src/main/java/com/baeldung/takes/TakesHelloWorld.java @@ -0,0 +1,15 @@ +package com.baeldung.takes; + +import org.takes.Request; +import org.takes.Response; +import org.takes.Take; +import org.takes.rs.RsText; + +public class TakesHelloWorld implements Take { + + @Override + public Response act(final Request request) { + return new RsText("Hello, world!"); + } + +} diff --git a/libraries-3/src/main/java/com/baeldung/takes/TakesIndex.java b/libraries-3/src/main/java/com/baeldung/takes/TakesIndex.java new file mode 100644 index 0000000000..3f74ba9c67 --- /dev/null +++ b/libraries-3/src/main/java/com/baeldung/takes/TakesIndex.java @@ -0,0 +1,24 @@ +package com.baeldung.takes; + +import java.io.IOException; + +import org.takes.Request; +import org.takes.Response; +import org.takes.Take; +import org.takes.rq.form.RqFormSmart; +import org.takes.rs.RsHtml; +import org.takes.rs.RsVelocity; + +public final class TakesIndex implements Take { + + @Override + public Response act(final Request req) throws IOException { + RqFormSmart form = new RqFormSmart(req); + String username = form.single("username"); + return new RsHtml( + new RsVelocity(this.getClass().getResource("/templates/index.vm"), + new RsVelocity.Pair("username", username)) + ); + } + +} diff --git a/libraries-3/src/main/webapp/templates/index.vm b/libraries-3/src/main/webapp/templates/index.vm new file mode 100644 index 0000000000..5a97f654ce --- /dev/null +++ b/libraries-3/src/main/webapp/templates/index.vm @@ -0,0 +1,9 @@ + + +Index + + +

Takes Web Application

+

Welcome, ${username}

+ + diff --git a/libraries-3/src/test/java/com/baeldung/takes/TakesAppIntegrationTest.java b/libraries-3/src/test/java/com/baeldung/takes/TakesAppIntegrationTest.java new file mode 100644 index 0000000000..8b869d0742 --- /dev/null +++ b/libraries-3/src/test/java/com/baeldung/takes/TakesAppIntegrationTest.java @@ -0,0 +1,36 @@ +package com.baeldung.takes; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.URI; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.junit.Test; +import org.takes.http.FtRemote; + +public class TakesAppIntegrationTest { + + @Test + public void givenTake_whenRunRemoteServer_thenRespond() throws Exception { + new FtRemote(new TakesContact()).exec( + new FtRemote.Script() { + @Override + public void exec(final URI home) throws IOException { + HttpClient client = HttpClientBuilder.create().build(); + HttpResponse response = client.execute(new HttpGet(home)); + int statusCode = response.getStatusLine().getStatusCode(); + HttpEntity entity = response.getEntity(); + String result = EntityUtils.toString(entity); + + assertEquals(200, statusCode); + assertEquals("Contact us at https://www.baeldung.com", result); + } + }); + } +} diff --git a/libraries-3/src/test/java/com/baeldung/takes/TakesContactUnitTest.java b/libraries-3/src/test/java/com/baeldung/takes/TakesContactUnitTest.java new file mode 100644 index 0000000000..5f8b7c57fc --- /dev/null +++ b/libraries-3/src/test/java/com/baeldung/takes/TakesContactUnitTest.java @@ -0,0 +1,17 @@ +package com.baeldung.takes; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.takes.rq.RqFake; +import org.takes.rs.RsPrint; + +public class TakesContactUnitTest { + + @Test + public void givenTake_whenInvokeActMethod_thenRespond() throws Exception { + final String resp = new RsPrint(new TakesContact().act(new RqFake())).printBody(); + assertEquals("Contact us at https://www.baeldung.com", resp); + } + +} diff --git a/lombok-custom/pom.xml b/lombok-custom/pom.xml index 75c3f9d407..220367bfe9 100644 --- a/lombok-custom/pom.xml +++ b/lombok-custom/pom.xml @@ -53,24 +53,6 @@ - - mac-profile - - false - - ${java.home}/../Classes/classes.jar - - - - - com.sun - tools - ${java.version} - system - ${java.home}/../Classes/classes.jar - - - diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java b/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java index 8174480078..a09878fb84 100644 --- a/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java +++ b/spring-boot-rest/src/main/java/com/baeldung/web/controller/FooController.java @@ -4,6 +4,8 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.data.domain.Page; @@ -11,6 +13,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -25,6 +28,8 @@ import org.springframework.web.util.UriComponentsBuilder; import com.baeldung.persistence.model.Foo; import com.baeldung.persistence.service.IFooService; +import com.baeldung.web.exception.CustomException1; +import com.baeldung.web.exception.CustomException2; import com.baeldung.web.exception.MyResourceNotFoundException; import com.baeldung.web.hateoas.event.PaginatedResultsRetrievedEvent; import com.baeldung.web.hateoas.event.ResourceCreatedEvent; @@ -36,6 +41,8 @@ import com.google.common.base.Preconditions; @RequestMapping(value = "/foos") public class FooController { + private static final Logger logger = LoggerFactory.getLogger(FooController.class); + @Autowired private ApplicationEventPublisher eventPublisher; @@ -137,4 +144,10 @@ public class FooController { public void delete(@PathVariable("id") final Long id) { service.deleteById(id); } + + @ExceptionHandler({ CustomException1.class, CustomException2.class }) + public void handleException(final Exception ex) { + final String error = "Application specific error handling"; + logger.error(error, ex); + } } diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseStatusExceptionResolver.java b/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseStatusExceptionResolver.java new file mode 100644 index 0000000000..6753ab35cf --- /dev/null +++ b/spring-boot-rest/src/main/java/com/baeldung/web/error/RestResponseStatusExceptionResolver.java @@ -0,0 +1,73 @@ +package com.baeldung.web.error; + +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; + +@Component +public class RestResponseStatusExceptionResolver extends AbstractHandlerExceptionResolver { + + private static final Logger logger = LoggerFactory.getLogger(RestResponseStatusExceptionResolver.class); + + @Override + protected ModelAndView doResolveException(HttpServletRequest request, + HttpServletResponse response, Object handler, Exception ex) { + try { + if (ex instanceof IllegalArgumentException) { + return handleIllegalArgument( + (IllegalArgumentException) ex, request, response, handler); + } + } catch (Exception handlerException) { + logger.warn("Handling of [{}] resulted in Exception", ex.getClass().getName(), handlerException); + } + return null; + } + + private ModelAndView handleIllegalArgument(IllegalArgumentException ex, + final HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + final String accept = request.getHeader(HttpHeaders.ACCEPT); + + response.sendError(HttpServletResponse.SC_CONFLICT); + response.setHeader("ContentType", accept); + + final ModelAndView modelAndView = new ModelAndView("error"); + modelAndView.addObject("error", prepareErrorResponse(accept)); + return modelAndView; + } + + /** Prepares error object based on the provided accept type. + * @param accept The Accept header present in the request. + * @return The response to return + * @throws JsonProcessingException + */ + private String prepareErrorResponse(String accept) throws JsonProcessingException { + final Map error = new HashMap<>(); + error.put("Error", "Application specific error message"); + + final String response; + if(MediaType.APPLICATION_JSON_VALUE.equals(accept)) { + response = new ObjectMapper().writeValueAsString(error); + } else { + response = new XmlMapper().writeValueAsString(error); + } + + return response; + } + + + +} diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/exception/CustomException1.java b/spring-boot-rest/src/main/java/com/baeldung/web/exception/CustomException1.java new file mode 100644 index 0000000000..ed8d34ae2b --- /dev/null +++ b/spring-boot-rest/src/main/java/com/baeldung/web/exception/CustomException1.java @@ -0,0 +1,7 @@ +package com.baeldung.web.exception; + +public class CustomException1 extends RuntimeException { + + private static final long serialVersionUID = 1L; + +} diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/exception/CustomException2.java b/spring-boot-rest/src/main/java/com/baeldung/web/exception/CustomException2.java new file mode 100644 index 0000000000..39b6c98a82 --- /dev/null +++ b/spring-boot-rest/src/main/java/com/baeldung/web/exception/CustomException2.java @@ -0,0 +1,7 @@ +package com.baeldung.web.exception; + +public class CustomException2 extends RuntimeException { + + private static final long serialVersionUID = 1L; + +} diff --git a/spring-boot-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java b/spring-boot-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java index fd002efc28..59bcfde57a 100644 --- a/spring-boot-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java +++ b/spring-boot-rest/src/main/java/com/baeldung/web/exception/MyResourceNotFoundException.java @@ -1,5 +1,9 @@ package com.baeldung.web.exception; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(value = HttpStatus.NOT_FOUND) public final class MyResourceNotFoundException extends RuntimeException { public MyResourceNotFoundException() { diff --git a/spring-boot-rest/src/test/java/com/baeldung/web/FooControllerWebLayerIntegrationTest.java b/spring-boot-rest/src/test/java/com/baeldung/web/FooControllerWebLayerIntegrationTest.java index bd98523b0a..4d4a274b1a 100644 --- a/spring-boot-rest/src/test/java/com/baeldung/web/FooControllerWebLayerIntegrationTest.java +++ b/spring-boot-rest/src/test/java/com/baeldung/web/FooControllerWebLayerIntegrationTest.java @@ -10,8 +10,10 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import java.util.Collections; import org.hamcrest.Matchers; +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; @@ -24,6 +26,7 @@ import org.springframework.test.web.servlet.MockMvc; import com.baeldung.persistence.model.Foo; import com.baeldung.persistence.service.IFooService; import com.baeldung.web.controller.FooController; +import com.baeldung.web.exception.CustomException1; import com.baeldung.web.hateoas.event.PaginatedResultsRetrievedEvent; /** @@ -56,5 +59,15 @@ public class FooControllerWebLayerIntegrationTest { .andExpect(status().isOk()) .andExpect(jsonPath("$",Matchers.hasSize(1))); } - + + @Test + public void delete_forException_fromService() throws Exception { + Mockito.when(service.findAll()).thenThrow(new CustomException1()); + this.mockMvc.perform(get("/foos")).andDo(h -> { + final Exception expectedException = h.getResolvedException(); + Assert.assertTrue(expectedException instanceof CustomException1); + + }); + } + } diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/messagedriven/RecieverMDB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/messagedriven/RecieverMDB.java similarity index 96% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/messagedriven/RecieverMDB.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/messagedriven/RecieverMDB.java index 7a6b750ce5..f7f43244d5 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/messagedriven/RecieverMDB.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/messagedriven/RecieverMDB.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.messagedriven; +package com.baeldung.ejbspringcomparison.ejb.messagedriven; import javax.annotation.Resource; import javax.ejb.ActivationConfigProperty; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJB.java similarity index 85% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJB.java index 8582d79662..6873a717a9 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJB.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJB.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.singleton; +package com.baeldung.ejbspringcomparison.ejb.singleton; import javax.ejb.Singleton; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJBRemote.java similarity index 71% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJBRemote.java index a66cda4f3e..ed02cfed4c 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/singleton/CounterEJBRemote.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/singleton/CounterEJBRemote.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.singleton; +package com.baeldung.ejbspringcomparison.ejb.singleton; import javax.ejb.Remote; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJB.java similarity index 91% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJB.java index 501af4059f..e01e53add1 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJB.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJB.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.stateful; +package com.baeldung.ejbspringcomparison.ejb.stateful; import java.util.ArrayList; import java.util.List; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJBRemote.java similarity index 79% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJBRemote.java index 4e1e407520..cea9cc3ad9 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateful/ShoppingCartEJBRemote.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateful/ShoppingCartEJBRemote.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.stateful; +package com.baeldung.ejbspringcomparison.ejb.stateful; import java.util.List; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateless/FinderEJB.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJB.java similarity index 89% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateless/FinderEJB.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJB.java index fb45e4e7ce..7609b17675 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateless/FinderEJB.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJB.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.stateless; +package com.baeldung.ejbspringcomparison.ejb.stateless; import java.util.HashMap; import java.util.Map; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateless/FinderEJBRemote.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJBRemote.java similarity index 65% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateless/FinderEJBRemote.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJBRemote.java index 36b4c9ae04..0354eff2b8 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/ejb/stateless/FinderEJBRemote.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/ejb/stateless/FinderEJBRemote.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb.stateless; +package com.baeldung.ejbspringcomparison.ejb.stateless; import javax.ejb.Remote; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/config/ApplicationConfig.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/config/ApplicationConfig.java similarity index 89% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/config/ApplicationConfig.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/config/ApplicationConfig.java index 6ec14dc098..8d6114d1c5 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/config/ApplicationConfig.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/config/ApplicationConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.spring.config; +package com.baeldung.ejbspringcomparison.spring.config; import javax.jms.ConnectionFactory; @@ -11,7 +11,7 @@ import org.springframework.jms.config.DefaultJmsListenerContainerFactory; import org.springframework.jms.core.JmsTemplate; @Configuration -@ComponentScan(basePackages = "com.baeldung.ejb.spring.comparison.spring") +@ComponentScan(basePackages = "com.baeldung.ejbspringcomparison.spring") @EnableJms public class ApplicationConfig { diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/messagedriven/Producer.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Producer.java similarity index 88% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/messagedriven/Producer.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Producer.java index a60dc4db8e..683ae7f51b 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/messagedriven/Producer.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Producer.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.spring.messagedriven; +package com.baeldung.ejbspringcomparison.spring.messagedriven; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/messagedriven/Receiver.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Receiver.java similarity index 88% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/messagedriven/Receiver.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Receiver.java index a3b36dd587..9a483e23c9 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/messagedriven/Receiver.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/messagedriven/Receiver.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.spring.messagedriven; +package com.baeldung.ejbspringcomparison.spring.messagedriven; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.annotation.JmsListener; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/singleton/CounterBean.java similarity index 84% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/singleton/CounterBean.java index c28e7bf74c..6b2b57582d 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/singleton/CounterBean.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/singleton/CounterBean.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.spring.singleton; +package com.baeldung.ejbspringcomparison.spring.singleton; import org.springframework.stereotype.Component; diff --git a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/stateful/ShoppingCartBean.java similarity index 92% rename from spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java rename to spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/stateful/ShoppingCartBean.java index 4d372baa84..e6e026f52a 100644 --- a/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejb/spring/comparison/spring/stateful/ShoppingCartBean.java +++ b/spring-ejb/ejb-beans/src/main/java/com/baeldung/ejbspringcomparison/spring/stateful/ShoppingCartBean.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.spring.stateful; +package com.baeldung.ejbspringcomparison.spring.stateful; import java.util.ArrayList; import java.util.List; diff --git a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/ejb/EJBUnitTest.java similarity index 93% rename from spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java rename to spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/ejb/EJBUnitTest.java index 3e9e5e7933..069028253e 100644 --- a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/ejb/EJBUnitTest.java +++ b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/ejb/EJBUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.ejb; +package com.baeldung.ejbspringcomparison.ejb; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -23,9 +23,9 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import com.baeldung.ejb.spring.comparison.ejb.singleton.CounterEJBRemote; -import com.baeldung.ejb.spring.comparison.ejb.stateful.ShoppingCartEJBRemote; -import com.baeldung.ejb.spring.comparison.ejb.stateless.FinderEJBRemote; +import com.baeldung.ejbspringcomparison.ejb.singleton.CounterEJBRemote; +import com.baeldung.ejbspringcomparison.ejb.stateful.ShoppingCartEJBRemote; +import com.baeldung.ejbspringcomparison.ejb.stateless.FinderEJBRemote; public class EJBUnitTest { diff --git a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/spring/SpringUnitTest.java similarity index 89% rename from spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java rename to spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/spring/SpringUnitTest.java index 7a9ddc15a4..e0b397befe 100644 --- a/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejb/spring/comparison/spring/SpringUnitTest.java +++ b/spring-ejb/ejb-beans/src/test/java/com/baeldung/ejbspringcomparison/spring/SpringUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.ejb.spring.comparison.spring; +package com.baeldung.ejbspringcomparison.spring; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -13,10 +13,10 @@ import org.junit.ClassRule; import org.junit.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import com.baeldung.ejb.spring.comparison.spring.config.ApplicationConfig; -import com.baeldung.ejb.spring.comparison.spring.messagedriven.Producer; -import com.baeldung.ejb.spring.comparison.spring.singleton.CounterBean; -import com.baeldung.ejb.spring.comparison.spring.stateful.ShoppingCartBean; +import com.baeldung.ejbspringcomparison.spring.config.ApplicationConfig; +import com.baeldung.ejbspringcomparison.spring.messagedriven.Producer; +import com.baeldung.ejbspringcomparison.spring.singleton.CounterBean; +import com.baeldung.ejbspringcomparison.spring.stateful.ShoppingCartBean; public class SpringUnitTest {