Skip to content

Conversation

@Kevinyl3
Copy link
Contributor

@Kevinyl3 Kevinyl3 commented Dec 6, 2021

Issue#1264: Composite-View Pattern

  • Implemented an example of the Composite-View pattern
  • Servlet runs on Tomcat 10+, uses JSP to generate views

Pull request description

  • created composite-view directory/module for the pattern
  • src\main contains the javabean class for view management, and the Servlet class
  • src\test contains the tests for the methods in the javabean class
  • web contains the all the JSP files and the web.xml file
…d private fields. Created test file for JavaBeans.
…o composite-view to allow the JSP to run on a local Tomcat container. Wrote unit tests for Java-bean class, working on JSP pages.
…reated atomic sub-view components in businessNews.jsp, header.jsp, localNews.jsp, scienceNews.jsp, sportsNews.jsp, worldNews.jsp. Composite view page renders correctly, atomic views are inserted in and substituted in the template page depending on request parameters.
@iluwatar
Copy link
Owner

In addition, SonarCloud code analysis is failing due to insufficient test coverage. Try to add more tests.

@Kevinyl3
Copy link
Contributor Author

for the code coverage, I'm not sure what tools/libraries there are to unit test HTTP servlets, do you have any suggestions?

… to reduce boilerplate setters and getter, updated README.md with better grammar, appropriate tags and links to related patterns. Updated pom.xml to get rid of superfluous lines.
title: Composite View
folder: composite-view
permalink: /patterns/composite-view/
categories: structural
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
categories: structural
categories: Structural
* Increases potential for display errors

## Related patterns
* [Composite (GoF)](../composite)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest linking to the website https://java-design-patterns.com/patterns/composite/

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

apologies, I was busy for the holidays, I have added these changes in my latest commit.

@iluwatar iluwatar added this to the 1.26.0 milestone Jan 18, 2022
@iluwatar iluwatar merged commit 7652b11 into iluwatar:master Jan 18, 2022
@iluwatar
Copy link
Owner

Excellent, thank you for adding this pattern!
@all-contributors please add @Kevinyl3 for code

@allcontributors
Copy link
Contributor

@iluwatar

I've put up a pull request to add @Kevinyl3! 🎉

@sonarqubecloud
Copy link

RobbiNespu pushed a commit to RobbiNespu/java-design-patterns that referenced this pull request Mar 1, 2022
…#1923) * initial commit, created package, README, pom, and directory structure. * Issue#1264, continue working on JavaBeans, added getters, setters, and private fields. Created test file for JavaBeans. * set up junit for tests folder. * Issue#1264, set up local server and added web-application framework to composite-view to allow the JSP to run on a local Tomcat container. Wrote unit tests for Java-bean class, working on JSP pages. * Issue#1264, Added forwarding functionality to servlet and main composite view page. * Issue#1264, Finished composite view template in newsDisplay.jsp and created atomic sub-view components in businessNews.jsp, header.jsp, localNews.jsp, scienceNews.jsp, sportsNews.jsp, worldNews.jsp. Composite view page renders correctly, atomic views are inserted in and substituted in the template page depending on request parameters. * Issue#1264, Added all views, updated README.md with documentation. * Issue#1264, updated README.md, moved images folder into etc folder. * Issue#1264, removed build artifacts from tracked files. * Issue#1264, updated README.md * Issue#1264, updated README.md * Issue#1264, removed unused import, made AppServlet class final, changed to .equals() for string comparison. * Issue#1264, in AppServlet, put the output writing into try blocks to ensure writers are closed. * Issue#1264, added tests for Servlet, coverage up to 100%, used lombok to reduce boilerplate setters and getter, updated README.md with better grammar, appropriate tags and links to related patterns. Updated pom.xml to get rid of superfluous lines. * Issue#1264, made changes as requested in README.md. Co-authored-by: Ilkka Seppälä <iluwatar@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

3 participants