From 6f5111ac2711a41e504fc395f8867e6d9ba21bfc Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 29 Apr 2013 11:26:36 -0700 Subject: [PATCH 001/206] Initial commit --- .gitignore | 6 ++++++ README.md | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 .gitignore create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..0f182a0349c4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.class + +# Package Files # +*.jar +*.war +*.ear diff --git a/README.md b/README.md new file mode 100644 index 000000000000..82864cb1dc39 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +tutorials +========= + +Baeldung tutorials From 3ac30cd89f8165d9e991bf5fce2ebc2bb365b71b Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 29 Apr 2013 21:37:10 +0300 Subject: [PATCH 002/206] initial work on spring-mvc sample --- spring-mvc/.classpath | 37 ++++++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 ++ spring-mvc/.gitignore | 13 +++ spring-mvc/.project | 60 ++++++++++ spring-mvc/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 91 +++++++++++++++ spring-mvc/.settings/org.eclipse.jdt.ui.prefs | 55 +++++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 31 ++++++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 +++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-mvc/.springBeans | 14 +++ spring-mvc/pom.xml | 105 ++++++++++++++++++ spring-mvc/src/main/resources/logback.xml | 60 ++++++++++ .../src/main/resources/webSecurityConfig.xml | 36 ++++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 ++ spring-mvc/src/main/webapp/WEB-INF/web.xml | 54 +++++++++ spring-mvc/src/test/resources/.gitignore | 13 +++ web/.springBeans | 13 +++ 24 files changed, 644 insertions(+) create mode 100644 spring-mvc/.classpath create mode 100644 spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-mvc/.gitignore create mode 100644 spring-mvc/.project create mode 100644 spring-mvc/.settings/.jsdtscope create mode 100644 spring-mvc/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-mvc/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-mvc/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-mvc/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-mvc/.settings/org.eclipse.wst.common.component create mode 100644 spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-mvc/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-mvc/.springBeans create mode 100644 spring-mvc/pom.xml create mode 100644 spring-mvc/src/main/resources/logback.xml create mode 100644 spring-mvc/src/main/resources/webSecurityConfig.xml create mode 100644 spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-mvc/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-mvc/src/test/resources/.gitignore create mode 100644 web/.springBeans diff --git a/spring-mvc/.classpath b/spring-mvc/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-mvc/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-mvc/.gitignore b/spring-mvc/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc/.project b/spring-mvc/.project new file mode 100644 index 000000000000..90b8ccd78f8f --- /dev/null +++ b/spring-mvc/.project @@ -0,0 +1,60 @@ + + + spring-mvc + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-mvc/.settings/.jsdtscope b/spring-mvc/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-mvc/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-mvc/.settings/org.eclipse.jdt.core.prefs b/spring-mvc/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..0924ed68cff2 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,91 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-mvc/.settings/org.eclipse.jdt.ui.prefs b/spring-mvc/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-mvc/.settings/org.eclipse.m2e.core.prefs b/spring-mvc/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs b/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-mvc/.settings/org.eclipse.wst.common.component b/spring-mvc/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..c28f646be673 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.common.component @@ -0,0 +1,31 @@ + + + + + + + + uses + + + uses + + + uses + + + uses + + + uses + + + uses + + + uses + + + + + diff --git a/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-mvc/.settings/org.eclipse.wst.validation.prefs b/spring-mvc/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-mvc/.springBeans b/spring-mvc/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-mvc/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml new file mode 100644 index 000000000000..d2007ffe976e --- /dev/null +++ b/spring-mvc/pom.xml @@ -0,0 +1,105 @@ + + 4.0.0 + org.baeldung + spring-mvc + spring-mvc + war + + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/resources/logback.xml b/spring-mvc/src/main/resources/logback.xml new file mode 100644 index 000000000000..976d267d7d16 --- /dev/null +++ b/spring-mvc/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + /var/log/launchpad/launchpad_web.log + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + ERROR + + email-smtp.us-east-1.amazonaws.com + AKIAJI6XLSOAQX3IW6HQ + AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED + true + hanriseldon@gmail.com + info@applieddatalabs.com + TESTING: %logger{20} - %m + + web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/resources/webSecurityConfig.xml b/spring-mvc/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-mvc/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp b/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..9d89410f99de --- /dev/null +++ b/spring-mvc/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,54 @@ + + + + spring-mvc + + + org.rest.common.log.LogContextInitializer + + + + + userDetailsFilter + com.launchpad.frontend.web.filter.UserDetailsFilter + + + userDetailsFilter + clientapp + + + + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + contextConfigLocation + org.rest.common.spring com.launchpad.frontend.spring com.launchpad.cloud.s3.spring com.launchpad.sec.api.spring com.launchpad.provisioning.api.spring + + + spring.profiles.active + sec_client,client + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + + + mvc + *.html + + + + index.html + + + \ No newline at end of file diff --git a/spring-mvc/src/test/resources/.gitignore b/spring-mvc/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/web/.springBeans b/web/.springBeans new file mode 100644 index 000000000000..b854542b588b --- /dev/null +++ b/web/.springBeans @@ -0,0 +1,13 @@ + + + 1 + + + + + + + + + + From 45c0260fc51bc1bb32d9bd96673785834f327bd1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 29 Apr 2013 21:43:51 +0300 Subject: [PATCH 003/206] mvc work --- .../org.eclipse.wst.common.component | 21 ---------- spring-mvc/pom.xml | 38 ++++++++++++++++++- .../spring/web/config/ClientWebConfig.java | 34 +++++++++++++++++ 3 files changed, 71 insertions(+), 22 deletions(-) create mode 100644 spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java diff --git a/spring-mvc/.settings/org.eclipse.wst.common.component b/spring-mvc/.settings/org.eclipse.wst.common.component index c28f646be673..dcefbbc2aca6 100644 --- a/spring-mvc/.settings/org.eclipse.wst.common.component +++ b/spring-mvc/.settings/org.eclipse.wst.common.component @@ -4,27 +4,6 @@ - - uses - - - uses - - - uses - - - uses - - - uses - - - uses - - - uses - diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml index d2007ffe976e..aeb0e7f9fbd6 100644 --- a/spring-mvc/pom.xml +++ b/spring-mvc/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 org.baeldung spring-mvc @@ -7,6 +8,19 @@ + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + @@ -102,4 +116,26 @@ + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + 0.1-SNAPSHOT \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..2446e7b614cf --- /dev/null +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,34 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +// @ComponentScan("org.package1.to.scan.web") +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file From 16e74dcca4856c27af3f6cd5ca3bb3d187f6bfd2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 29 Apr 2013 22:06:30 +0300 Subject: [PATCH 004/206] minor web.xml work --- spring-mvc/src/main/webapp/WEB-INF/web.xml | 32 +++++++--------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc/src/main/webapp/WEB-INF/web.xml index 9d89410f99de..6ab6f3db011f 100644 --- a/spring-mvc/src/main/webapp/WEB-INF/web.xml +++ b/spring-mvc/src/main/webapp/WEB-INF/web.xml @@ -1,38 +1,25 @@ - spring-mvc - - - org.rest.common.log.LogContextInitializer - - - - - userDetailsFilter - com.launchpad.frontend.web.filter.UserDetailsFilter - - - userDetailsFilter - clientapp - + Spring MVC Application contextClass - org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + contextConfigLocation - org.rest.common.spring com.launchpad.frontend.spring com.launchpad.cloud.s3.spring com.launchpad.sec.api.spring com.launchpad.provisioning.api.spring - - - spring.profiles.active - sec_client,client + org.package1.to.scan org.package2.to.scan + org.springframework.web.context.ContextLoaderListener @@ -41,6 +28,7 @@ mvc org.springframework.web.servlet.DispatcherServlet + 1 mvc From 35fbbd7822410d63ef12e8804ddedc9a2236363d Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 30 Apr 2013 12:20:25 +0300 Subject: [PATCH 005/206] minor cleanup --- spring-mvc/.settings/org.eclipse.wst.common.component | 6 +++--- .../org/baeldung/spring/web/config/ClientWebConfig.java | 6 ++++++ spring-mvc/src/main/webapp/WEB-INF/web.xml | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/spring-mvc/.settings/org.eclipse.wst.common.component b/spring-mvc/.settings/org.eclipse.wst.common.component index dcefbbc2aca6..9784ac36ee68 100644 --- a/spring-mvc/.settings/org.eclipse.wst.common.component +++ b/spring-mvc/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 2446e7b614cf..93b0f9be79c2 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -14,6 +14,12 @@ // @ComponentScan("org.package1.to.scan.web") public class ClientWebConfig extends WebMvcConfigurerAdapter { + public ClientWebConfig() { + super(); + } + + // API + @Override public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc/src/main/webapp/WEB-INF/web.xml index 6ab6f3db011f..a8e377b131b3 100644 --- a/spring-mvc/src/main/webapp/WEB-INF/web.xml +++ b/spring-mvc/src/main/webapp/WEB-INF/web.xml @@ -17,7 +17,7 @@ contextConfigLocation - org.package1.to.scan org.package2.to.scan + org.baeldung.spring.web.config From a568f9877f8947bdb35c62161a05b0860a1e53ea Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 30 Apr 2013 13:04:07 +0300 Subject: [PATCH 006/206] doc work --- README.md | 7 +++++-- spring-mvc/README.md | 4 ++++ spring-mvc/pom.xml | 3 ++- .../org/baeldung/spring/web/config/ClientWebConfig.java | 1 - spring-mvc/src/main/webapp/WEB-INF/web.xml | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 spring-mvc/README.md diff --git a/README.md b/README.md index 82864cb1dc39..bae1a993f761 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -tutorials +Spring Tutorials ========= -Baeldung tutorials +Spring MVC +========= +[Spring MVC Example with Java based Configuration](http://www.baeldung.com/spring-mvc-java-configuration) + diff --git a/spring-mvc/README.md b/spring-mvc/README.md new file mode 100644 index 000000000000..82864cb1dc39 --- /dev/null +++ b/spring-mvc/README.md @@ -0,0 +1,4 @@ +tutorials +========= + +Baeldung tutorials diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml index aeb0e7f9fbd6..3700a428ddb4 100644 --- a/spring-mvc/pom.xml +++ b/spring-mvc/pom.xml @@ -3,6 +3,8 @@ 4.0.0 org.baeldung spring-mvc + 0.1-SNAPSHOT + spring-mvc war @@ -137,5 +139,4 @@ - 0.1-SNAPSHOT \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 93b0f9be79c2..2758a707e6bc 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -11,7 +11,6 @@ @EnableWebMvc @Configuration -// @ComponentScan("org.package1.to.scan.web") public class ClientWebConfig extends WebMvcConfigurerAdapter { public ClientWebConfig() { diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc/src/main/webapp/WEB-INF/web.xml index a8e377b131b3..ba2bb591ed01 100644 --- a/spring-mvc/src/main/webapp/WEB-INF/web.xml +++ b/spring-mvc/src/main/webapp/WEB-INF/web.xml @@ -32,7 +32,7 @@ mvc - *.html + / From 3ee550c7d31dacd0a866793f393f54eb476a4b51 Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 30 Apr 2013 13:04:57 +0300 Subject: [PATCH 007/206] doc work --- spring-mvc/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-mvc/README.md b/spring-mvc/README.md index 82864cb1dc39..afb2185d6002 100644 --- a/spring-mvc/README.md +++ b/spring-mvc/README.md @@ -1,4 +1,3 @@ -tutorials +Spring MVC with Java Configuration ========= -Baeldung tutorials From b72a865367fc6501c7562931acf3b6cc82dd4c50 Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 30 Apr 2013 18:04:57 +0300 Subject: [PATCH 008/206] spring mvc work --- {spring-mvc => spring-mvc-java}/.classpath | 0 ...e.wst.jsdt.core.javascriptValidator.launch | 0 .../resources => spring-mvc-java}/.gitignore | 0 spring-mvc-java/.project | 60 ++++++++ .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../org.eclipse.wst.common.component | 0 ....eclipse.wst.common.project.facet.core.xml | 0 ...rg.eclipse.wst.jsdt.ui.superType.container | 0 .../org.eclipse.wst.jsdt.ui.superType.name | 0 .../org.eclipse.wst.validation.prefs | 0 .../org.eclipse.wst.ws.service.policy.prefs | 0 spring-mvc-java/.springBeans | 14 ++ {spring-mvc => spring-mvc-java}/README.md | 0 {spring-mvc => spring-mvc-java}/pom.xml | 0 .../spring/web/config/ClientWebConfig.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/sample.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 spring-mvc-java/src/test/resources/.gitignore | 13 ++ spring-mvc-xml/.classpath | 37 +++++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-mvc-xml/.gitignore | 13 ++ spring-mvc-xml/.project | 60 ++++++++ spring-mvc-xml/.project~ | 60 ++++++++ spring-mvc-xml/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 91 +++++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-mvc-xml/.springBeans | 14 ++ spring-mvc-xml/README.md | 3 + spring-mvc-xml/README.md~ | 4 + spring-mvc-xml/pom.xml | 142 ++++++++++++++++++ .../spring/web/config/ClientWebConfig.java | 39 +++++ spring-mvc-xml/src/main/resources/logback.xml | 60 ++++++++ .../src/main/resources/webSecurityConfig.xml | 36 +++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 42 ++++++ spring-mvc-xml/src/test/resources/.gitignore | 13 ++ spring-mvc/.gitignore | 14 +- spring-mvc/.project | 2 +- spring-mvc/.springBeans | 1 - 55 files changed, 830 insertions(+), 15 deletions(-) rename {spring-mvc => spring-mvc-java}/.classpath (100%) rename {spring-mvc => spring-mvc-java}/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch (100%) rename {spring-mvc/src/test/resources => spring-mvc-java}/.gitignore (100%) create mode 100644 spring-mvc-java/.project rename {spring-mvc => spring-mvc-java}/.settings/.jsdtscope (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.wst.common.component (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-mvc => spring-mvc-java}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) create mode 100644 spring-mvc-java/.springBeans rename {spring-mvc => spring-mvc-java}/README.md (100%) rename {spring-mvc => spring-mvc-java}/pom.xml (100%) rename {spring-mvc => spring-mvc-java}/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java (100%) rename {spring-mvc => spring-mvc-java}/src/main/resources/logback.xml (100%) rename {spring-mvc => spring-mvc-java}/src/main/resources/webSecurityConfig.xml (100%) rename {spring-mvc => spring-mvc-java}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-mvc => spring-mvc-java}/src/main/webapp/WEB-INF/view/sample.jsp (100%) rename {spring-mvc => spring-mvc-java}/src/main/webapp/WEB-INF/web.xml (100%) create mode 100644 spring-mvc-java/src/test/resources/.gitignore create mode 100644 spring-mvc-xml/.classpath create mode 100644 spring-mvc-xml/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-mvc-xml/.gitignore create mode 100644 spring-mvc-xml/.project create mode 100644 spring-mvc-xml/.project~ create mode 100644 spring-mvc-xml/.settings/.jsdtscope create mode 100644 spring-mvc-xml/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-mvc-xml/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-mvc-xml/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-mvc-xml/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-mvc-xml/.settings/org.eclipse.wst.common.component create mode 100644 spring-mvc-xml/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-mvc-xml/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-mvc-xml/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-mvc-xml/.springBeans create mode 100644 spring-mvc-xml/README.md create mode 100644 spring-mvc-xml/README.md~ create mode 100644 spring-mvc-xml/pom.xml create mode 100644 spring-mvc-xml/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java create mode 100644 spring-mvc-xml/src/main/resources/logback.xml create mode 100644 spring-mvc-xml/src/main/resources/webSecurityConfig.xml create mode 100644 spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-mvc-xml/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-mvc-xml/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-mvc-xml/src/test/resources/.gitignore diff --git a/spring-mvc/.classpath b/spring-mvc-java/.classpath similarity index 100% rename from spring-mvc/.classpath rename to spring-mvc-java/.classpath diff --git a/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-mvc-java/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch similarity index 100% rename from spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch rename to spring-mvc-java/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch diff --git a/spring-mvc/src/test/resources/.gitignore b/spring-mvc-java/.gitignore similarity index 100% rename from spring-mvc/src/test/resources/.gitignore rename to spring-mvc-java/.gitignore diff --git a/spring-mvc-java/.project b/spring-mvc-java/.project new file mode 100644 index 000000000000..46209afeadc7 --- /dev/null +++ b/spring-mvc-java/.project @@ -0,0 +1,60 @@ + + + spring-mvc-java + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-mvc/.settings/.jsdtscope b/spring-mvc-java/.settings/.jsdtscope similarity index 100% rename from spring-mvc/.settings/.jsdtscope rename to spring-mvc-java/.settings/.jsdtscope diff --git a/spring-mvc/.settings/org.eclipse.jdt.core.prefs b/spring-mvc-java/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-mvc/.settings/org.eclipse.jdt.core.prefs rename to spring-mvc-java/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-mvc/.settings/org.eclipse.jdt.ui.prefs b/spring-mvc-java/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-mvc/.settings/org.eclipse.jdt.ui.prefs rename to spring-mvc-java/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-mvc/.settings/org.eclipse.m2e.core.prefs b/spring-mvc-java/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-mvc/.settings/org.eclipse.m2e.core.prefs rename to spring-mvc-java/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs b/spring-mvc-java/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-mvc/.settings/org.eclipse.m2e.wtp.prefs rename to spring-mvc-java/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-mvc/.settings/org.eclipse.wst.common.component b/spring-mvc-java/.settings/org.eclipse.wst.common.component similarity index 100% rename from spring-mvc/.settings/org.eclipse.wst.common.component rename to spring-mvc-java/.settings/org.eclipse.wst.common.component diff --git a/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-mvc-java/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-mvc-java/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-mvc-java/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-mvc-java/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-mvc-java/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-mvc-java/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-mvc/.settings/org.eclipse.wst.validation.prefs b/spring-mvc-java/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-mvc/.settings/org.eclipse.wst.validation.prefs rename to spring-mvc-java/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-mvc-java/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-mvc-java/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-mvc-java/.springBeans b/spring-mvc-java/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-mvc-java/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-mvc/README.md b/spring-mvc-java/README.md similarity index 100% rename from spring-mvc/README.md rename to spring-mvc-java/README.md diff --git a/spring-mvc/pom.xml b/spring-mvc-java/pom.xml similarity index 100% rename from spring-mvc/pom.xml rename to spring-mvc-java/pom.xml diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java similarity index 100% rename from spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java rename to spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java diff --git a/spring-mvc/src/main/resources/logback.xml b/spring-mvc-java/src/main/resources/logback.xml similarity index 100% rename from spring-mvc/src/main/resources/logback.xml rename to spring-mvc-java/src/main/resources/logback.xml diff --git a/spring-mvc/src/main/resources/webSecurityConfig.xml b/spring-mvc-java/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-mvc/src/main/resources/webSecurityConfig.xml rename to spring-mvc-java/src/main/resources/webSecurityConfig.xml diff --git a/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-mvc-java/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-mvc-java/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp b/spring-mvc-java/src/main/webapp/WEB-INF/view/sample.jsp similarity index 100% rename from spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-mvc-java/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc-java/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-mvc/src/main/webapp/WEB-INF/web.xml rename to spring-mvc-java/src/main/webapp/WEB-INF/web.xml diff --git a/spring-mvc-java/src/test/resources/.gitignore b/spring-mvc-java/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc-java/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc-xml/.classpath b/spring-mvc-xml/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-mvc-xml/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-mvc-xml/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-mvc-xml/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-mvc-xml/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-mvc-xml/.gitignore b/spring-mvc-xml/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc-xml/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc-xml/.project b/spring-mvc-xml/.project new file mode 100644 index 000000000000..6cdb4e0e5194 --- /dev/null +++ b/spring-mvc-xml/.project @@ -0,0 +1,60 @@ + + + spring-mvc-xml + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-mvc-xml/.project~ b/spring-mvc-xml/.project~ new file mode 100644 index 000000000000..90b8ccd78f8f --- /dev/null +++ b/spring-mvc-xml/.project~ @@ -0,0 +1,60 @@ + + + spring-mvc + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-mvc-xml/.settings/.jsdtscope b/spring-mvc-xml/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-mvc-xml/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-mvc-xml/.settings/org.eclipse.jdt.core.prefs b/spring-mvc-xml/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..0924ed68cff2 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,91 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-mvc-xml/.settings/org.eclipse.jdt.ui.prefs b/spring-mvc-xml/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-mvc-xml/.settings/org.eclipse.m2e.core.prefs b/spring-mvc-xml/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-mvc-xml/.settings/org.eclipse.m2e.wtp.prefs b/spring-mvc-xml/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-mvc-xml/.settings/org.eclipse.wst.common.component b/spring-mvc-xml/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..9784ac36ee68 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-mvc-xml/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-mvc-xml/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-mvc-xml/.settings/org.eclipse.wst.validation.prefs b/spring-mvc-xml/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-mvc-xml/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-mvc-xml/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-mvc-xml/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-mvc-xml/.springBeans b/spring-mvc-xml/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-mvc-xml/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-mvc-xml/README.md b/spring-mvc-xml/README.md new file mode 100644 index 000000000000..afb2185d6002 --- /dev/null +++ b/spring-mvc-xml/README.md @@ -0,0 +1,3 @@ +Spring MVC with Java Configuration +========= + diff --git a/spring-mvc-xml/README.md~ b/spring-mvc-xml/README.md~ new file mode 100644 index 000000000000..82864cb1dc39 --- /dev/null +++ b/spring-mvc-xml/README.md~ @@ -0,0 +1,4 @@ +tutorials +========= + +Baeldung tutorials diff --git a/spring-mvc-xml/pom.xml b/spring-mvc-xml/pom.xml new file mode 100644 index 000000000000..3700a428ddb4 --- /dev/null +++ b/spring-mvc-xml/pom.xml @@ -0,0 +1,142 @@ + + 4.0.0 + org.baeldung + spring-mvc + 0.1-SNAPSHOT + + spring-mvc + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-mvc-xml/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc-xml/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..2758a707e6bc --- /dev/null +++ b/spring-mvc-xml/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-mvc-xml/src/main/resources/logback.xml b/spring-mvc-xml/src/main/resources/logback.xml new file mode 100644 index 000000000000..976d267d7d16 --- /dev/null +++ b/spring-mvc-xml/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + /var/log/launchpad/launchpad_web.log + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + ERROR + + email-smtp.us-east-1.amazonaws.com + AKIAJI6XLSOAQX3IW6HQ + AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED + true + hanriseldon@gmail.com + info@applieddatalabs.com + TESTING: %logger{20} - %m + + web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc-xml/src/main/resources/webSecurityConfig.xml b/spring-mvc-xml/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-mvc-xml/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-mvc-xml/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/view/sample.jsp b/spring-mvc-xml/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-mvc-xml/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml b/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..ba2bb591ed01 --- /dev/null +++ b/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + + \ No newline at end of file diff --git a/spring-mvc-xml/src/test/resources/.gitignore b/spring-mvc-xml/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc-xml/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc/.gitignore b/spring-mvc/.gitignore index 83c05e60c802..5e56e040ec09 100644 --- a/spring-mvc/.gitignore +++ b/spring-mvc/.gitignore @@ -1,13 +1 @@ -*.class - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* - -# Packaged files # -*.jar -*.war -*.ear \ No newline at end of file +/bin diff --git a/spring-mvc/.project b/spring-mvc/.project index 90b8ccd78f8f..46209afeadc7 100644 --- a/spring-mvc/.project +++ b/spring-mvc/.project @@ -1,6 +1,6 @@ - spring-mvc + spring-mvc-java diff --git a/spring-mvc/.springBeans b/spring-mvc/.springBeans index 7623a7e88836..b854542b588b 100644 --- a/spring-mvc/.springBeans +++ b/spring-mvc/.springBeans @@ -7,7 +7,6 @@ - src/main/webapp/WEB-INF/mvc-servlet.xml From 6e30401cba47bbcf326e8f27e32d65a4dd556503 Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 30 Apr 2013 18:05:56 +0300 Subject: [PATCH 009/206] minor cleanup --- spring-mvc-java/pom.xml | 4 ++-- spring-mvc-xml/README.md~ | 4 ---- spring-mvc-xml/pom.xml | 4 ++-- 3 files changed, 4 insertions(+), 8 deletions(-) delete mode 100644 spring-mvc-xml/README.md~ diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index 3700a428ddb4..bb983b43e6f0 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-mvc + spring-mvc-java 0.1-SNAPSHOT - spring-mvc + spring-mvc-java war diff --git a/spring-mvc-xml/README.md~ b/spring-mvc-xml/README.md~ deleted file mode 100644 index 82864cb1dc39..000000000000 --- a/spring-mvc-xml/README.md~ +++ /dev/null @@ -1,4 +0,0 @@ -tutorials -========= - -Baeldung tutorials diff --git a/spring-mvc-xml/pom.xml b/spring-mvc-xml/pom.xml index 3700a428ddb4..ecde675bfcd4 100644 --- a/spring-mvc-xml/pom.xml +++ b/spring-mvc-xml/pom.xml @@ -2,10 +2,9 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-mvc 0.1-SNAPSHOT - spring-mvc + spring-mvc-xml war @@ -139,4 +138,5 @@ + spring-mvc-xml \ No newline at end of file From 433bd4682d8b9b2208573aa677577e0df9d5a96a Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 30 Apr 2013 18:09:37 +0300 Subject: [PATCH 010/206] cleanup work --- spring-mvc-xml/src/main/webapp/WEB-INF/web.xml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml b/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml index ba2bb591ed01..d1256535ab4a 100644 --- a/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml +++ b/spring-mvc-xml/src/main/webapp/WEB-INF/web.xml @@ -9,15 +9,9 @@ Spring MVC Application - - contextClass - - org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - contextConfigLocation - org.baeldung.spring.web.config + /WEB-INF/mvc-servlet.xml From 2d258c1002d19e766ef70490169643c598fb58dd Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 15:05:25 +0300 Subject: [PATCH 011/206] removing unnecessary artifacts --- spring-mvc/.gitignore | 1 - spring-mvc/.project | 60 ----------------------------------------- spring-mvc/.springBeans | 13 --------- web/.springBeans | 13 --------- 4 files changed, 87 deletions(-) delete mode 100644 spring-mvc/.gitignore delete mode 100644 spring-mvc/.project delete mode 100644 spring-mvc/.springBeans delete mode 100644 web/.springBeans diff --git a/spring-mvc/.gitignore b/spring-mvc/.gitignore deleted file mode 100644 index 5e56e040ec09..000000000000 --- a/spring-mvc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/bin diff --git a/spring-mvc/.project b/spring-mvc/.project deleted file mode 100644 index 46209afeadc7..000000000000 --- a/spring-mvc/.project +++ /dev/null @@ -1,60 +0,0 @@ - - - spring-mvc-java - - - - - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.wst.validation.validationbuilder - - - - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature - - diff --git a/spring-mvc/.springBeans b/spring-mvc/.springBeans deleted file mode 100644 index b854542b588b..000000000000 --- a/spring-mvc/.springBeans +++ /dev/null @@ -1,13 +0,0 @@ - - - 1 - - - - - - - - - - diff --git a/web/.springBeans b/web/.springBeans deleted file mode 100644 index b854542b588b..000000000000 --- a/web/.springBeans +++ /dev/null @@ -1,13 +0,0 @@ - - - 1 - - - - - - - - - - From 9d0902f273cd0fef2a02a73c702a8a58e798fdb2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 15:12:58 +0300 Subject: [PATCH 012/206] initial work on login tutorial --- spring-security-login/.classpath | 37 ++++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-login/.gitignore | 13 ++ spring-security-login/.project | 60 ++++++ spring-security-login/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 91 +++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-login/.springBeans | 14 ++ spring-security-login/README.md | 3 + spring-security-login/pom.xml | 192 ++++++++++++++++++ .../spring/web/config/ClientWebConfig.java | 39 ++++ .../src/main/resources/logback.xml | 60 ++++++ .../src/main/resources/webSecurityConfig.xml | 36 ++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 42 ++++ .../src/test/resources/.gitignore | 13 ++ 25 files changed, 727 insertions(+) create mode 100644 spring-security-login/.classpath create mode 100644 spring-security-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-login/.gitignore create mode 100644 spring-security-login/.project create mode 100644 spring-security-login/.settings/.jsdtscope create mode 100644 spring-security-login/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-login/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-login/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-login/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-login/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-login/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-login/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-login/.springBeans create mode 100644 spring-security-login/README.md create mode 100644 spring-security-login/pom.xml create mode 100644 spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java create mode 100644 spring-security-login/src/main/resources/logback.xml create mode 100644 spring-security-login/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-login/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-security-login/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-security-login/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-login/src/test/resources/.gitignore diff --git a/spring-security-login/.classpath b/spring-security-login/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-security-login/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-login/.gitignore b/spring-security-login/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-login/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-login/.project b/spring-security-login/.project new file mode 100644 index 000000000000..1ba7568736b9 --- /dev/null +++ b/spring-security-login/.project @@ -0,0 +1,60 @@ + + + spring-security-login + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-security-login/.settings/.jsdtscope b/spring-security-login/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-security-login/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-security-login/.settings/org.eclipse.jdt.core.prefs b/spring-security-login/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..0924ed68cff2 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,91 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-login/.settings/org.eclipse.jdt.ui.prefs b/spring-security-login/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-login/.settings/org.eclipse.m2e.core.prefs b/spring-security-login/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-login/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-login/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-login/.settings/org.eclipse.wst.common.component b/spring-security-login/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..9784ac36ee68 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-login/.settings/org.eclipse.wst.validation.prefs b/spring-security-login/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-login/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-login/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-login/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-login/.springBeans b/spring-security-login/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-security-login/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-security-login/README.md b/spring-security-login/README.md new file mode 100644 index 000000000000..7cc97242ec04 --- /dev/null +++ b/spring-security-login/README.md @@ -0,0 +1,3 @@ +Spring Security Login +========= + diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml new file mode 100644 index 000000000000..ebc03d974f3f --- /dev/null +++ b/spring-security-login/pom.xml @@ -0,0 +1,192 @@ + + 4.0.0 + org.baeldung + spring-security-login + 0.1-SNAPSHOT + + spring-security-login + war + + + + + + + org.springframework.security + spring-security-core + ${org.springframework.security.version} + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + 3.1.4.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..2758a707e6bc --- /dev/null +++ b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-security-login/src/main/resources/logback.xml b/spring-security-login/src/main/resources/logback.xml new file mode 100644 index 000000000000..976d267d7d16 --- /dev/null +++ b/spring-security-login/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + /var/log/launchpad/launchpad_web.log + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + ERROR + + email-smtp.us-east-1.amazonaws.com + AKIAJI6XLSOAQX3IW6HQ + AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED + true + hanriseldon@gmail.com + info@applieddatalabs.com + TESTING: %logger{20} - %m + + web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-login/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-login/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-login/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/sample.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-security-login/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-security-login/src/main/webapp/WEB-INF/web.xml b/spring-security-login/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..ba2bb591ed01 --- /dev/null +++ b/spring-security-login/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + + \ No newline at end of file diff --git a/spring-security-login/src/test/resources/.gitignore b/spring-security-login/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-login/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From 1083636ca29e6734a69818841e59367a07e1e492 Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 15:27:45 +0300 Subject: [PATCH 013/206] security work --- spring-security-login/pom.xml | 5 +++ .../spring/web/config/SecSecurityConfig.java | 14 ++++++++ .../src/main/resources/webSecurityConfig.xml | 35 +++++++------------ .../src/main/webapp/WEB-INF/web.xml | 10 ++++++ 4 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index ebc03d974f3f..76a023e4ca50 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -22,6 +22,11 @@ spring-security-web ${org.springframework.security.version} + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java new file mode 100644 index 000000000000..65a571c71589 --- /dev/null +++ b/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index 5569cc69508a..2b38e4cf17e7 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -1,36 +1,27 @@ - - - - - - - - + - - - - - - + - + - + - - - - - + + + + + + \ No newline at end of file diff --git a/spring-security-login/src/main/webapp/WEB-INF/web.xml b/spring-security-login/src/main/webapp/WEB-INF/web.xml index ba2bb591ed01..23e0e8c1d7b0 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-login/src/main/webapp/WEB-INF/web.xml @@ -35,6 +35,16 @@ / + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + index.html From 2dbcc247618a6fdf418b7f5357c524c5b465bed6 Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 15:39:36 +0300 Subject: [PATCH 014/206] initial login page --- spring-security-login/pom.xml | 5 ----- .../org/baeldung/spring/web/config/ClientWebConfig.java | 1 + .../src/main/webapp/WEB-INF/view/login.jsp | 7 +++++++ 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 spring-security-login/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index 76a023e4ca50..c3ed1ebb2d77 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -12,11 +12,6 @@ - - org.springframework.security - spring-security-core - ${org.springframework.security.version} - org.springframework.security spring-security-web diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 2758a707e6bc..b13c73dce375 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -23,6 +23,7 @@ public ClientWebConfig() { public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); + registry.addViewController("/login.html"); registry.addViewController("/sample.html"); } diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp new file mode 100644 index 000000000000..b026d0df44b3 --- /dev/null +++ b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp @@ -0,0 +1,7 @@ + + + + +

Login

+ + \ No newline at end of file From 2f9a99654ebb1827883639ee2dfb9dfb3ce1b8f3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 16:13:33 +0300 Subject: [PATCH 015/206] login worj --- .../org.eclipse.wst.common.component | 6 +++--- spring-security-login/pom.xml | 2 +- .../spring/web/config/ClientWebConfig.java | 2 +- .../src/main/resources/webSecurityConfig.xml | 4 +--- .../WEB-INF/view/{sample.jsp => homepage.jsp} | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 19 +++++++++++++++++++ 6 files changed, 25 insertions(+), 8 deletions(-) rename spring-security-login/src/main/webapp/WEB-INF/view/{sample.jsp => homepage.jsp} (100%) diff --git a/spring-security-login/.settings/org.eclipse.wst.common.component b/spring-security-login/.settings/org.eclipse.wst.common.component index 9784ac36ee68..c42e29f80edc 100644 --- a/spring-security-login/.settings/org.eclipse.wst.common.component +++ b/spring-security-login/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index c3ed1ebb2d77..d8cecabcdb63 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -120,7 +120,7 @@
- spring-mvc + spring-security-login src/main/resources diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index b13c73dce375..4aadc3a48c92 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -24,7 +24,7 @@ public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); registry.addViewController("/login.html"); - registry.addViewController("/sample.html"); + registry.addViewController("/homepage.html"); } @Bean diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index 2b38e4cf17e7..7079e0e04b39 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -9,11 +9,9 @@ - - - diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/sample.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-login/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp index b026d0df44b3..d64f1e2f62dd 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp +++ b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp @@ -3,5 +3,24 @@

Login

+ +
+ + + + + + + + + + + + + +
User:
Password:
+ +
+ \ No newline at end of file From a21d9e45387b3b6e36b73b7c0a01614dfb0c204c Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 16:20:41 +0300 Subject: [PATCH 016/206] project work --- spring-security-login/.classpath | 6 ------ spring-security-login/.project | 1 - spring-security-login/.settings/.jsdtscope | 7 ------- spring-security-login/.settings/org.eclipse.jdt.core.prefs | 4 ++++ .../org.eclipse.wst.common.project.facet.core.xml | 1 - .../src/main/webapp/WEB-INF/view/login.jsp | 2 +- 6 files changed, 5 insertions(+), 16 deletions(-) diff --git a/spring-security-login/.classpath b/spring-security-login/.classpath index eed10d8a8b04..5dea19367768 100644 --- a/spring-security-login/.classpath +++ b/spring-security-login/.classpath @@ -6,12 +6,6 @@ - - - - - - diff --git a/spring-security-login/.project b/spring-security-login/.project index 1ba7568736b9..49eecbd6a380 100644 --- a/spring-security-login/.project +++ b/spring-security-login/.project @@ -54,7 +54,6 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature org.zeroturnaround.eclipse.jrebelNature
diff --git a/spring-security-login/.settings/.jsdtscope b/spring-security-login/.settings/.jsdtscope index b46b9207a89e..7b3f0c8b9fae 100644 --- a/spring-security-login/.settings/.jsdtscope +++ b/spring-security-login/.settings/.jsdtscope @@ -1,12 +1,5 @@ - - - - - - - diff --git a/spring-security-login/.settings/org.eclipse.jdt.core.prefs b/spring-security-login/.settings/org.eclipse.jdt.core.prefs index 0924ed68cff2..723e5b12451a 100644 --- a/spring-security-login/.settings/org.eclipse.jdt.core.prefs +++ b/spring-security-login/.settings/org.eclipse.jdt.core.prefs @@ -6,7 +6,11 @@ org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nul org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore diff --git a/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml index a67649dfa5ae..b46bc511b943 100644 --- a/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,6 +1,5 @@ - diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp index d64f1e2f62dd..ba8b7748042b 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp +++ b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp @@ -4,7 +4,7 @@

Login

-
+ From bcc0338f7a75066e8b7a8b7d4be2f5a5812740ea Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 1 May 2013 16:59:54 +0300 Subject: [PATCH 017/206] login work --- .../src/main/resources/webSecurityConfig.xml | 8 ++++++-- .../src/main/webapp/WEB-INF/view/login.jsp | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index 7079e0e04b39..6394c926995b 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -9,8 +9,12 @@ - + diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp index ba8b7748042b..013ceccb4e4d 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp +++ b/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp @@ -4,7 +4,7 @@

Login

- +
From dfd157bb9db0d69608e83114ad1ae543681b88f3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 21:38:51 +0300 Subject: [PATCH 018/206] initial work on DAO - spring with hibernate --- spring-hibernate-dao/.classpath | 37 +++++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-hibernate-dao/.gitignore | 13 ++ spring-hibernate-dao/.project | 60 ++++++++ spring-hibernate-dao/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 91 ++++++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 ++++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-hibernate-dao/.springBeans | 14 ++ spring-hibernate-dao/README.md | 3 + spring-hibernate-dao/pom.xml | 133 ++++++++++++++++++ .../spring/web/config/PersistenceConfig.java | 14 ++ .../src/main/resources/logback.xml | 60 ++++++++ .../src/main/resources/webSecurityConfig.xml | 36 +++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 42 ++++++ .../src/test/resources/.gitignore | 13 ++ 25 files changed, 643 insertions(+) create mode 100644 spring-hibernate-dao/.classpath create mode 100644 spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-hibernate-dao/.gitignore create mode 100644 spring-hibernate-dao/.project create mode 100644 spring-hibernate-dao/.settings/.jsdtscope create mode 100644 spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-hibernate-dao/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-hibernate-dao/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-hibernate-dao/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-hibernate-dao/.settings/org.eclipse.wst.common.component create mode 100644 spring-hibernate-dao/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-hibernate-dao/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-hibernate-dao/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-hibernate-dao/.springBeans create mode 100644 spring-hibernate-dao/README.md create mode 100644 spring-hibernate-dao/pom.xml create mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java create mode 100644 spring-hibernate-dao/src/main/resources/logback.xml create mode 100644 spring-hibernate-dao/src/main/resources/webSecurityConfig.xml create mode 100644 spring-hibernate-dao/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-hibernate-dao/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-hibernate-dao/src/test/resources/.gitignore diff --git a/spring-hibernate-dao/.classpath b/spring-hibernate-dao/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-hibernate-dao/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-hibernate-dao/.gitignore b/spring-hibernate-dao/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-hibernate-dao/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-hibernate-dao/.project b/spring-hibernate-dao/.project new file mode 100644 index 000000000000..2335f700600c --- /dev/null +++ b/spring-hibernate-dao/.project @@ -0,0 +1,60 @@ + + + spring-hibernate-dao + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-hibernate-dao/.settings/.jsdtscope b/spring-hibernate-dao/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-hibernate-dao/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..0924ed68cff2 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,91 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-hibernate-dao/.settings/org.eclipse.jdt.ui.prefs b/spring-hibernate-dao/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-hibernate-dao/.settings/org.eclipse.m2e.core.prefs b/spring-hibernate-dao/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-hibernate-dao/.settings/org.eclipse.m2e.wtp.prefs b/spring-hibernate-dao/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate-dao/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..9784ac36ee68 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-hibernate-dao/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.validation.prefs b/spring-hibernate-dao/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-hibernate-dao/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-hibernate-dao/.springBeans b/spring-hibernate-dao/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-hibernate-dao/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-hibernate-dao/README.md b/spring-hibernate-dao/README.md new file mode 100644 index 000000000000..afb2185d6002 --- /dev/null +++ b/spring-hibernate-dao/README.md @@ -0,0 +1,3 @@ +Spring MVC with Java Configuration +========= + diff --git a/spring-hibernate-dao/pom.xml b/spring-hibernate-dao/pom.xml new file mode 100644 index 000000000000..3f5af7099049 --- /dev/null +++ b/spring-hibernate-dao/pom.xml @@ -0,0 +1,133 @@ + + 4.0.0 + org.baeldung + spring-hibernate-dao + 0.1-SNAPSHOT + + spring-hibernate-dao + war + + + + + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-entitymanager + 4.2.1.Final + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java new file mode 100644 index 000000000000..b3348756e79c --- /dev/null +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Configuration; + +@Configuration +public class PersistenceConfig { + + public PersistenceConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/resources/logback.xml b/spring-hibernate-dao/src/main/resources/logback.xml new file mode 100644 index 000000000000..976d267d7d16 --- /dev/null +++ b/spring-hibernate-dao/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + /var/log/launchpad/launchpad_web.log + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + ERROR + + email-smtp.us-east-1.amazonaws.com + AKIAJI6XLSOAQX3IW6HQ + AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED + true + hanriseldon@gmail.com + info@applieddatalabs.com + TESTING: %logger{20} - %m + + web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/resources/webSecurityConfig.xml b/spring-hibernate-dao/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-hibernate-dao/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate-dao/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-hibernate-dao/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/view/sample.jsp b/spring-hibernate-dao/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-hibernate-dao/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..ba2bb591ed01 --- /dev/null +++ b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + + \ No newline at end of file diff --git a/spring-hibernate-dao/src/test/resources/.gitignore b/spring-hibernate-dao/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-hibernate-dao/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From e8ffb362e6a6293e9884113bc1bb8238b7ef52ea Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 22:36:14 +0300 Subject: [PATCH 019/206] persistence work --- spring-hibernate-dao/pom.xml | 8 +- .../persistence/config/PersistenceConfig.java | 73 +++++++++++++++++++ .../spring/persistence/dao/FooDao.java | 14 ++++ .../spring/persistence/model/Foo.java | 8 ++ .../spring/web/config/PersistenceConfig.java | 14 ---- .../resources/persistence-mysql.properties | 10 +++ .../src/main/webapp/WEB-INF/web.xml | 64 ++++++++-------- 7 files changed, 143 insertions(+), 48 deletions(-) create mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java create mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java create mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java delete mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java create mode 100644 spring-hibernate-dao/src/main/resources/persistence-mysql.properties diff --git a/spring-hibernate-dao/pom.xml b/spring-hibernate-dao/pom.xml index 3f5af7099049..ff6b79458063 100644 --- a/spring-hibernate-dao/pom.xml +++ b/spring-hibernate-dao/pom.xml @@ -24,12 +24,18 @@ + + + + + org.hibernate - hibernate-entitymanager + hibernate-core 4.2.1.Final + diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java new file mode 100644 index 000000000000..33833f364cf9 --- /dev/null +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -0,0 +1,73 @@ +package org.baeldung.spring.persistence.config; + +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +public class PersistenceConfig { + + @Autowired + private Environment env; + + public PersistenceConfig() { + super(); + } + + @Bean + public AnnotationSessionFactoryBean alertsSessionFactory() { + final AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.rest" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName")); + dataSource.setUrl(env.getProperty("jdbc.url")); + dataSource.setUsername(env.getProperty("jdbc.user")); + dataSource.setPassword(env.getProperty("jdbc.pass")); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(alertsSessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java new file mode 100644 index 000000000000..a497d14dd48c --- /dev/null +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.persistence.dao; + +import org.springframework.stereotype.Repository; + +@Repository +public class FooDao { + + public FooDao() { + super(); + } + + // API + +} diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java new file mode 100644 index 000000000000..01a3693325ad --- /dev/null +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -0,0 +1,8 @@ +package org.baeldung.spring.persistence.model; + +import javax.persistence.Entity; + +@Entity +public class Foo { + // +} diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java deleted file mode 100644 index b3348756e79c..000000000000 --- a/spring-hibernate-dao/src/main/java/org/baeldung/spring/web/config/PersistenceConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.baeldung.spring.web.config; - -import org.springframework.context.annotation.Configuration; - -@Configuration -public class PersistenceConfig { - - public PersistenceConfig() { - super(); - } - - // API - -} \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/resources/persistence-mysql.properties b/spring-hibernate-dao/src/main/resources/persistence-mysql.properties new file mode 100644 index 000000000000..a1ff997616ae --- /dev/null +++ b/spring-hibernate-dao/src/main/resources/persistence-mysql.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.user=tutorialuser +jdbc.pass=tutorialmy5ql + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=false +hibernate.hbm2ddl.auto=create-drop diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml index ba2bb591ed01..7e3d3b3181dc 100644 --- a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml +++ b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml @@ -1,42 +1,40 @@ - + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> - Spring MVC Application + Spring MVC Application - - - contextClass - - org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - - contextConfigLocation - org.baeldung.spring.web.config - + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.persistence.config + - - org.springframework.web.context.ContextLoaderListener - + + org.springframework.web.context.ContextLoaderListener + - - - mvc - org.springframework.web.servlet.DispatcherServlet - 1 - - - mvc - / - + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + - - index.html - + + index.html + \ No newline at end of file From 8c497f4e1967875c097c077e775bd19868250a5d Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 22:38:57 +0300 Subject: [PATCH 020/206] eclipse cleanup --- spring-hibernate-dao/.classpath | 9 +- ...e.wst.jsdt.core.javascriptValidator.launch | 7 -- .../.settings/org.eclipse.jdt.core.prefs | 89 +------------------ .../org.eclipse.wst.common.component | 6 +- spring-hibernate-dao/pom.xml | 2 +- 5 files changed, 8 insertions(+), 105 deletions(-) delete mode 100644 spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch diff --git a/spring-hibernate-dao/.classpath b/spring-hibernate-dao/.classpath index eed10d8a8b04..270b2f28fc7b 100644 --- a/spring-hibernate-dao/.classpath +++ b/spring-hibernate-dao/.classpath @@ -6,12 +6,6 @@ - - - - - - @@ -22,7 +16,7 @@ - + @@ -30,7 +24,6 @@ - diff --git a/spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch deleted file mode 100644 index 627021fb9640..000000000000 --- a/spring-hibernate-dao/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs index 0924ed68cff2..45a6e0e0d5a1 100644 --- a/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs +++ b/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs @@ -1,91 +1,8 @@ eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=error -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=error -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate-dao/.settings/org.eclipse.wst.common.component index 9784ac36ee68..a4e21eb5728e 100644 --- a/spring-hibernate-dao/.settings/org.eclipse.wst.common.component +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-hibernate-dao/pom.xml b/spring-hibernate-dao/pom.xml index ff6b79458063..f72835845ebd 100644 --- a/spring-hibernate-dao/pom.xml +++ b/spring-hibernate-dao/pom.xml @@ -68,7 +68,7 @@ - spring-mvc + spring-hibernate-dao src/main/resources From debee3bf5c874e6075120b192294a78716993494 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 22:40:30 +0300 Subject: [PATCH 021/206] eclipse cleanup --- spring-hibernate-dao/.classpath | 7 +++++++ .../.settings/org.eclipse.jdt.core.prefs | 10 +++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/spring-hibernate-dao/.classpath b/spring-hibernate-dao/.classpath index 270b2f28fc7b..721d2ae4b77a 100644 --- a/spring-hibernate-dao/.classpath +++ b/spring-hibernate-dao/.classpath @@ -16,6 +16,12 @@ + + + + + + @@ -24,6 +30,7 @@ + diff --git a/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs index 45a6e0e0d5a1..62492222ad2e 100644 --- a/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs +++ b/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,12 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.source=1.7 From 015050f9288e84c0bfc82604e9ceebdab56cddce Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 22:44:39 +0300 Subject: [PATCH 022/206] persistence work --- spring-hibernate-dao/pom.xml | 284 +++++++++--------- .../persistence/config/PersistenceConfig.java | 10 +- .../src/main/webapp/WEB-INF/web.xml | 26 +- 3 files changed, 167 insertions(+), 153 deletions(-) diff --git a/spring-hibernate-dao/pom.xml b/spring-hibernate-dao/pom.xml index f72835845ebd..3eee87711757 100644 --- a/spring-hibernate-dao/pom.xml +++ b/spring-hibernate-dao/pom.xml @@ -1,139 +1,151 @@ - 4.0.0 - org.baeldung - spring-hibernate-dao - 0.1-SNAPSHOT - - spring-hibernate-dao - war - - - - - - - org.springframework - spring-orm - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - - - - - - - - - org.hibernate - hibernate-core - 4.2.1.Final - - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-hibernate-dao - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.2.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.4 - - 1.8.0 - 1.8.9 - - + 4.0.0 + org.baeldung + spring-hibernate-dao + 0.1-SNAPSHOT + + spring-hibernate-dao + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + + + + + + org.hibernate + hibernate-core + 4.2.1.Final + + + + + + com.google.guava + guava + 14.0.1 + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-hibernate-dao + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + \ No newline at end of file diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index 33833f364cf9..fa7138f74249 100644 --- a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -15,6 +15,8 @@ import org.springframework.orm.hibernate4.HibernateTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; +import com.google.common.base.Preconditions; + @Configuration @EnableTransactionManagement @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) @@ -40,10 +42,10 @@ public AnnotationSessionFactoryBean alertsSessionFactory() { @Bean public DataSource restDataSource() { final DriverManagerDataSource dataSource = new DriverManagerDataSource(); - dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName")); - dataSource.setUrl(env.getProperty("jdbc.url")); - dataSource.setUsername(env.getProperty("jdbc.user")); - dataSource.setPassword(env.getProperty("jdbc.pass")); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); return dataSource; } diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml index 7e3d3b3181dc..ebe53ec4c065 100644 --- a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml +++ b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml @@ -22,19 +22,19 @@ org.springframework.web.context.ContextLoaderListener - - - mvc - org.springframework.web.servlet.DispatcherServlet - 1 - - - mvc - / - + + + + + + + + + + - - index.html - + + + \ No newline at end of file From 480edf4a3c9ce53c3977e0e143915a1b427a64a2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 22:45:59 +0300 Subject: [PATCH 023/206] initial service work --- .../spring/persistence/dao/FooDao.java | 2 +- .../spring/persistence/dao/IFooDao.java | 5 +++++ .../persistence/service/FooService.java | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java create mode 100644 spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java index a497d14dd48c..a59bb30f48b1 100644 --- a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -3,7 +3,7 @@ import org.springframework.stereotype.Repository; @Repository -public class FooDao { +public class FooDao implements IFooDao { public FooDao() { super(); diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..91d44f5f6bfb --- /dev/null +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -0,0 +1,5 @@ +package org.baeldung.spring.persistence.dao; + +public interface IFooDao { + // +} diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java new file mode 100644 index 000000000000..cda31a0e86ef --- /dev/null +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -0,0 +1,19 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.IFooDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + @Autowired + private IFooDao fooDao; + + public FooService() { + super(); + } + + // API + +} From 38803691b9ea787294ba6aba13c36161896d6f78 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 4 May 2013 22:53:36 +0300 Subject: [PATCH 024/206] further config --- spring-hibernate-dao/pom.xml | 16 +++++++++---- .../persistence/config/PersistenceConfig.java | 12 ++++++---- .../spring/persistence/model/Foo.java | 23 +++++++++++++++++++ 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/spring-hibernate-dao/pom.xml b/spring-hibernate-dao/pom.xml index 3eee87711757..d60e33bcd210 100644 --- a/spring-hibernate-dao/pom.xml +++ b/spring-hibernate-dao/pom.xml @@ -29,16 +29,22 @@ - - - - - + + org.hibernate + hibernate-entitymanager + 4.2.1.Final + org.hibernate hibernate-core 4.2.1.Final + + mysql + mysql-connector-java + 5.1.25 + runtime + diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index fa7138f74249..7e8a78b0c4c9 100644 --- a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -8,17 +8,19 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean; import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.google.common.base.Preconditions; @Configuration @EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) public class PersistenceConfig { @@ -30,10 +32,10 @@ public PersistenceConfig() { } @Bean - public AnnotationSessionFactoryBean alertsSessionFactory() { - final AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean(); + public LocalSessionFactoryBean sessionFactory() { + final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.rest" }); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; @@ -53,7 +55,7 @@ public DataSource restDataSource() { @Bean public HibernateTransactionManager transactionManager() { final HibernateTransactionManager txManager = new HibernateTransactionManager(); - txManager.setSessionFactory(alertsSessionFactory().getObject()); + txManager.setSessionFactory(sessionFactory().getObject()); return txManager; } diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java index 01a3693325ad..8842c26d95b1 100644 --- a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -1,8 +1,31 @@ package org.baeldung.spring.persistence.model; import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; @Entity public class Foo { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + public Foo() { + super(); + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + // + } From f6c7a693528b6717f650cd62e40862ab8c7862dc Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 01:36:56 +0300 Subject: [PATCH 025/206] rename --- spring-hibernate-dao/.project | 2 +- .../org.eclipse.wst.common.component | 6 +-- .../src/main/webapp/WEB-INF/web.xml | 49 +++++-------------- 3 files changed, 17 insertions(+), 40 deletions(-) diff --git a/spring-hibernate-dao/.project b/spring-hibernate-dao/.project index 2335f700600c..320788977023 100644 --- a/spring-hibernate-dao/.project +++ b/spring-hibernate-dao/.project @@ -1,6 +1,6 @@ - spring-hibernate-dao + spring-hibernate4-dao diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate-dao/.settings/org.eclipse.wst.common.component index a4e21eb5728e..2746e4b44396 100644 --- a/spring-hibernate-dao/.settings/org.eclipse.wst.common.component +++ b/spring-hibernate-dao/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml index ebe53ec4c065..e0de9aefd45a 100644 --- a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml +++ b/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml @@ -1,40 +1,17 @@ - - - Spring MVC Application - - - - contextClass - + + Spring MVC Application + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring.persistence.config - - - - org.springframework.web.context.ContextLoaderListener - - - - - - - - - - - - - - - - - + + + contextConfigLocation + org.baeldung.spring.persistence.config + + + org.springframework.web.context.ContextLoaderListener + \ No newline at end of file From aff48b8bb0d10e091f4d18191d72fb43d4d74bb5 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 01:38:26 +0300 Subject: [PATCH 026/206] rename --- {spring-hibernate-dao => spring-hibernate4-dao}/.classpath | 0 {spring-hibernate-dao => spring-hibernate4-dao}/.gitignore | 0 {spring-hibernate-dao => spring-hibernate4-dao}/.project | 0 .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../.settings/org.eclipse.wst.common.component | 0 .../.settings/org.eclipse.wst.common.project.facet.core.xml | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.container | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.name | 0 .../.settings/org.eclipse.wst.validation.prefs | 0 .../.settings/org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 {spring-hibernate-dao => spring-hibernate4-dao}/README.md | 0 {spring-hibernate-dao => spring-hibernate4-dao}/pom.xml | 6 +++--- .../spring/persistence/config/PersistenceConfig.java | 0 .../java/org/baeldung/spring/persistence/dao/FooDao.java | 0 .../java/org/baeldung/spring/persistence/dao/IFooDao.java | 0 .../java/org/baeldung/spring/persistence/model/Foo.java | 0 .../org/baeldung/spring/persistence/service/FooService.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/persistence-mysql.properties | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/sample.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/resources/.gitignore | 0 29 files changed, 3 insertions(+), 3 deletions(-) rename {spring-hibernate-dao => spring-hibernate4-dao}/.classpath (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.gitignore (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.project (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/.jsdtscope (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.wst.common.component (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/.springBeans (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/README.md (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/pom.xml (97%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/java/org/baeldung/spring/persistence/model/Foo.java (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/java/org/baeldung/spring/persistence/service/FooService.java (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/resources/logback.xml (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/resources/persistence-mysql.properties (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/resources/webSecurityConfig.xml (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/webapp/WEB-INF/view/sample.jsp (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-hibernate-dao => spring-hibernate4-dao}/src/test/resources/.gitignore (100%) diff --git a/spring-hibernate-dao/.classpath b/spring-hibernate4-dao/.classpath similarity index 100% rename from spring-hibernate-dao/.classpath rename to spring-hibernate4-dao/.classpath diff --git a/spring-hibernate-dao/.gitignore b/spring-hibernate4-dao/.gitignore similarity index 100% rename from spring-hibernate-dao/.gitignore rename to spring-hibernate4-dao/.gitignore diff --git a/spring-hibernate-dao/.project b/spring-hibernate4-dao/.project similarity index 100% rename from spring-hibernate-dao/.project rename to spring-hibernate4-dao/.project diff --git a/spring-hibernate-dao/.settings/.jsdtscope b/spring-hibernate4-dao/.settings/.jsdtscope similarity index 100% rename from spring-hibernate-dao/.settings/.jsdtscope rename to spring-hibernate4-dao/.settings/.jsdtscope diff --git a/spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate4-dao/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.jdt.core.prefs rename to spring-hibernate4-dao/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-hibernate-dao/.settings/org.eclipse.jdt.ui.prefs b/spring-hibernate4-dao/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.jdt.ui.prefs rename to spring-hibernate4-dao/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-hibernate-dao/.settings/org.eclipse.m2e.core.prefs b/spring-hibernate4-dao/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.m2e.core.prefs rename to spring-hibernate4-dao/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-hibernate-dao/.settings/org.eclipse.m2e.wtp.prefs b/spring-hibernate4-dao/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.m2e.wtp.prefs rename to spring-hibernate4-dao/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate4-dao/.settings/org.eclipse.wst.common.component similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.wst.common.component rename to spring-hibernate4-dao/.settings/org.eclipse.wst.common.component diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-hibernate4-dao/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-hibernate4-dao/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.validation.prefs b/spring-hibernate4-dao/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.wst.validation.prefs rename to spring-hibernate4-dao/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-hibernate-dao/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-hibernate4-dao/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-hibernate-dao/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-hibernate4-dao/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-hibernate-dao/.springBeans b/spring-hibernate4-dao/.springBeans similarity index 100% rename from spring-hibernate-dao/.springBeans rename to spring-hibernate4-dao/.springBeans diff --git a/spring-hibernate-dao/README.md b/spring-hibernate4-dao/README.md similarity index 100% rename from spring-hibernate-dao/README.md rename to spring-hibernate4-dao/README.md diff --git a/spring-hibernate-dao/pom.xml b/spring-hibernate4-dao/pom.xml similarity index 97% rename from spring-hibernate-dao/pom.xml rename to spring-hibernate4-dao/pom.xml index d60e33bcd210..ca2aacde8e65 100644 --- a/spring-hibernate-dao/pom.xml +++ b/spring-hibernate4-dao/pom.xml @@ -1,10 +1,10 @@ 4.0.0 org.baeldung - spring-hibernate-dao + spring-hibernate4-dao 0.1-SNAPSHOT - spring-hibernate-dao + spring-hibernate4-dao war @@ -86,7 +86,7 @@ - spring-hibernate-dao + spring-hibernate4-dao src/main/resources diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java similarity index 100% rename from spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java rename to spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java similarity index 100% rename from spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java rename to spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java similarity index 100% rename from spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java rename to spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java similarity index 100% rename from spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java rename to spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java diff --git a/spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java similarity index 100% rename from spring-hibernate-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java diff --git a/spring-hibernate-dao/src/main/resources/logback.xml b/spring-hibernate4-dao/src/main/resources/logback.xml similarity index 100% rename from spring-hibernate-dao/src/main/resources/logback.xml rename to spring-hibernate4-dao/src/main/resources/logback.xml diff --git a/spring-hibernate-dao/src/main/resources/persistence-mysql.properties b/spring-hibernate4-dao/src/main/resources/persistence-mysql.properties similarity index 100% rename from spring-hibernate-dao/src/main/resources/persistence-mysql.properties rename to spring-hibernate4-dao/src/main/resources/persistence-mysql.properties diff --git a/spring-hibernate-dao/src/main/resources/webSecurityConfig.xml b/spring-hibernate4-dao/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-hibernate-dao/src/main/resources/webSecurityConfig.xml rename to spring-hibernate4-dao/src/main/resources/webSecurityConfig.xml diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate4-dao/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-hibernate-dao/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-hibernate4-dao/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/view/sample.jsp b/spring-hibernate4-dao/src/main/webapp/WEB-INF/view/sample.jsp similarity index 100% rename from spring-hibernate-dao/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-hibernate4-dao/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate4-dao/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-hibernate-dao/src/main/webapp/WEB-INF/web.xml rename to spring-hibernate4-dao/src/main/webapp/WEB-INF/web.xml diff --git a/spring-hibernate-dao/src/test/resources/.gitignore b/spring-hibernate4-dao/src/test/resources/.gitignore similarity index 100% rename from spring-hibernate-dao/src/test/resources/.gitignore rename to spring-hibernate4-dao/src/test/resources/.gitignore From a468d634f047b08e9e8ff60f85a7a1f57a99c688 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 01:39:02 +0300 Subject: [PATCH 027/206] rename --- spring-hibernate4-dao/.classpath | 6 ------ 1 file changed, 6 deletions(-) diff --git a/spring-hibernate4-dao/.classpath b/spring-hibernate4-dao/.classpath index 721d2ae4b77a..9c9f508af047 100644 --- a/spring-hibernate4-dao/.classpath +++ b/spring-hibernate4-dao/.classpath @@ -16,12 +16,6 @@ - - - - - - From 5ac1e624297c12acc029c5ecc7f235e1a99f55e9 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 17:34:38 +0300 Subject: [PATCH 028/206] hibernate 3 work --- spring-hibernate3-dao/.classpath | 31 ++++ spring-hibernate3-dao/.gitignore | 13 ++ spring-hibernate3-dao/.project | 60 +++++++ spring-hibernate3-dao/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 12 ++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-hibernate3-dao/.springBeans | 14 ++ spring-hibernate3-dao/README.md | 3 + spring-hibernate3-dao/pom.xml | 152 ++++++++++++++++++ .../persistence/config/PersistenceConfig.java | 77 +++++++++ .../spring/persistence/dao/FooDao.java | 14 ++ .../spring/persistence/dao/IFooDao.java | 5 + .../spring/persistence/model/Foo.java | 31 ++++ .../persistence/service/FooService.java | 19 +++ .../src/main/resources/logback.xml | 60 +++++++ .../resources/persistence-mysql.properties | 10 ++ .../src/main/resources/webSecurityConfig.xml | 36 +++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 17 ++ .../src/test/resources/.gitignore | 13 ++ 29 files changed, 687 insertions(+) create mode 100644 spring-hibernate3-dao/.classpath create mode 100644 spring-hibernate3-dao/.gitignore create mode 100644 spring-hibernate3-dao/.project create mode 100644 spring-hibernate3-dao/.settings/.jsdtscope create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.wst.common.component create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-hibernate3-dao/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-hibernate3-dao/.springBeans create mode 100644 spring-hibernate3-dao/README.md create mode 100644 spring-hibernate3-dao/pom.xml create mode 100644 spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java create mode 100644 spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java create mode 100644 spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java create mode 100644 spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java create mode 100644 spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java create mode 100644 spring-hibernate3-dao/src/main/resources/logback.xml create mode 100644 spring-hibernate3-dao/src/main/resources/persistence-mysql.properties create mode 100644 spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml create mode 100644 spring-hibernate3-dao/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-hibernate3-dao/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-hibernate3-dao/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-hibernate3-dao/src/test/resources/.gitignore diff --git a/spring-hibernate3-dao/.classpath b/spring-hibernate3-dao/.classpath new file mode 100644 index 000000000000..9c9f508af047 --- /dev/null +++ b/spring-hibernate3-dao/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-hibernate3-dao/.gitignore b/spring-hibernate3-dao/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-hibernate3-dao/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-hibernate3-dao/.project b/spring-hibernate3-dao/.project new file mode 100644 index 000000000000..8aa9e7ad5822 --- /dev/null +++ b/spring-hibernate3-dao/.project @@ -0,0 +1,60 @@ + + + spring-hibernate3-dao + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-hibernate3-dao/.settings/.jsdtscope b/spring-hibernate3-dao/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-hibernate3-dao/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-hibernate3-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate3-dao/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..62492222ad2e --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-hibernate3-dao/.settings/org.eclipse.jdt.ui.prefs b/spring-hibernate3-dao/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-hibernate3-dao/.settings/org.eclipse.m2e.core.prefs b/spring-hibernate3-dao/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-hibernate3-dao/.settings/org.eclipse.m2e.wtp.prefs b/spring-hibernate3-dao/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate3-dao/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..557fa1bf21e8 --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-hibernate3-dao/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.validation.prefs b/spring-hibernate3-dao/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-hibernate3-dao/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-hibernate3-dao/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-hibernate3-dao/.springBeans b/spring-hibernate3-dao/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-hibernate3-dao/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-hibernate3-dao/README.md b/spring-hibernate3-dao/README.md new file mode 100644 index 000000000000..afb2185d6002 --- /dev/null +++ b/spring-hibernate3-dao/README.md @@ -0,0 +1,3 @@ +Spring MVC with Java Configuration +========= + diff --git a/spring-hibernate3-dao/pom.xml b/spring-hibernate3-dao/pom.xml new file mode 100644 index 000000000000..8458cd7b729b --- /dev/null +++ b/spring-hibernate3-dao/pom.xml @@ -0,0 +1,152 @@ + + 4.0.0 + org.baeldung + spring-hibernate3-dao + 0.1-SNAPSHOT + + spring-hibernate3-dao + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + 3.6.10.Final + + + mysql + mysql-connector-java + 5.1.25 + runtime + + + + + + com.google.guava + guava + 14.0.1 + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-hibernate3-dao + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java new file mode 100644 index 000000000000..13922658a607 --- /dev/null +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -0,0 +1,77 @@ +package org.baeldung.spring.persistence.config; + +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate3.HibernateTransactionManager; +import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.google.common.base.Preconditions; + +@Configuration +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +public class PersistenceConfig { + + @Autowired + private Environment env; + + public PersistenceConfig() { + super(); + } + + @Bean + public AnnotationSessionFactoryBean sessionFactory() { + final AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(sessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java new file mode 100644 index 000000000000..a59bb30f48b1 --- /dev/null +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.persistence.dao; + +import org.springframework.stereotype.Repository; + +@Repository +public class FooDao implements IFooDao { + + public FooDao() { + super(); + } + + // API + +} diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..91d44f5f6bfb --- /dev/null +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -0,0 +1,5 @@ +package org.baeldung.spring.persistence.dao; + +public interface IFooDao { + // +} diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java new file mode 100644 index 000000000000..8842c26d95b1 --- /dev/null +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -0,0 +1,31 @@ +package org.baeldung.spring.persistence.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Foo { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + public Foo() { + super(); + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + // + +} diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java new file mode 100644 index 000000000000..cda31a0e86ef --- /dev/null +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -0,0 +1,19 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.IFooDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + @Autowired + private IFooDao fooDao; + + public FooService() { + super(); + } + + // API + +} diff --git a/spring-hibernate3-dao/src/main/resources/logback.xml b/spring-hibernate3-dao/src/main/resources/logback.xml new file mode 100644 index 000000000000..976d267d7d16 --- /dev/null +++ b/spring-hibernate3-dao/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + /var/log/launchpad/launchpad_web.log + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + ERROR + + email-smtp.us-east-1.amazonaws.com + AKIAJI6XLSOAQX3IW6HQ + AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED + true + hanriseldon@gmail.com + info@applieddatalabs.com + TESTING: %logger{20} - %m + + web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/resources/persistence-mysql.properties b/spring-hibernate3-dao/src/main/resources/persistence-mysql.properties new file mode 100644 index 000000000000..a1ff997616ae --- /dev/null +++ b/spring-hibernate3-dao/src/main/resources/persistence-mysql.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.user=tutorialuser +jdbc.pass=tutorialmy5ql + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=false +hibernate.hbm2ddl.auto=create-drop diff --git a/spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml b/spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate3-dao/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-hibernate3-dao/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/webapp/WEB-INF/view/sample.jsp b/spring-hibernate3-dao/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-hibernate3-dao/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate3-dao/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..e0de9aefd45a --- /dev/null +++ b/spring-hibernate3-dao/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,17 @@ + + + Spring MVC Application + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.persistence.config + + + org.springframework.web.context.ContextLoaderListener + + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/test/resources/.gitignore b/spring-hibernate3-dao/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-hibernate3-dao/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From c3dd5900dcc9a4566ca6705ebaa6d586315fe8f4 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 17:49:00 +0300 Subject: [PATCH 029/206] hibernate proxy enabled --- spring-hibernate3-dao/pom.xml | 5 +++++ .../spring/persistence/config/PersistenceConfig.java | 2 ++ spring-hibernate4-dao/pom.xml | 8 ++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/spring-hibernate3-dao/pom.xml b/spring-hibernate3-dao/pom.xml index 8458cd7b729b..d2adea1f25ce 100644 --- a/spring-hibernate3-dao/pom.xml +++ b/spring-hibernate3-dao/pom.xml @@ -34,6 +34,11 @@ hibernate-core 3.6.10.Final
+ + org.javassist + javassist + 3.17.1-GA + mysql mysql-connector-java diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index 13922658a607..f6a0e0d76faf 100644 --- a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -69,6 +69,8 @@ final Properties hibernateProperties() { return new Properties() { { setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + // setProperty("hibernate.globally_quoted_identifiers", "true"); // note: necessary in launchpad-storage, but causing problems here } diff --git a/spring-hibernate4-dao/pom.xml b/spring-hibernate4-dao/pom.xml index ca2aacde8e65..940289493dc9 100644 --- a/spring-hibernate4-dao/pom.xml +++ b/spring-hibernate4-dao/pom.xml @@ -31,13 +31,13 @@ org.hibernate - hibernate-entitymanager + hibernate-core 4.2.1.Final - org.hibernate - hibernate-core - 4.2.1.Final + org.javassist + javassist + 3.17.1-GA mysql From 174f3fcc3e18ff8c96cff854609ce775c862a976 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 17:51:11 +0300 Subject: [PATCH 030/206] config fix --- .../baeldung/spring/persistence/config/PersistenceConfig.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index 7e8a78b0c4c9..3157c92e9924 100644 --- a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -69,6 +69,8 @@ final Properties hibernateProperties() { return new Properties() { { setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + // setProperty("hibernate.globally_quoted_identifiers", "true"); // note: necessary in launchpad-storage, but causing problems here } From 4f0baa25c95ea18ff89e336be6be262019626190 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 20:58:56 +0300 Subject: [PATCH 031/206] xml configuration introduced --- .../persistence/config/PersistenceConfig.java | 3 +- .../config/PersistenceXmlConfig.java | 18 ++++++++++ .../src/main/resources/persistenceConfig.xml | 35 ++++++++++++++++++ .../src/main/resources/webSecurityConfig.xml | 36 ------------------- 4 files changed, 54 insertions(+), 38 deletions(-) create mode 100644 spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java create mode 100644 spring-hibernate3-dao/src/main/resources/persistenceConfig.xml delete mode 100644 spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index f6a0e0d76faf..e8f448f4c2e6 100644 --- a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @@ -18,7 +17,7 @@ import com.google.common.base.Preconditions; -@Configuration +// @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java new file mode 100644 index 000000000000..d8791b6bcc7b --- /dev/null +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java @@ -0,0 +1,18 @@ +package org.baeldung.spring.persistence.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ImportResource({ "classpath:persistenceConfig.xml" }) +public class PersistenceXmlConfig { + + public PersistenceXmlConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/resources/persistenceConfig.xml b/spring-hibernate3-dao/src/main/resources/persistenceConfig.xml new file mode 100644 index 000000000000..0dc729f815dd --- /dev/null +++ b/spring-hibernate3-dao/src/main/resources/persistenceConfig.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + ${hibernate.hbm2ddl.auto} + ${hibernate.dialect} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml b/spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml deleted file mode 100644 index 5569cc69508a..000000000000 --- a/spring-hibernate3-dao/src/main/resources/webSecurityConfig.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From a7ea6c8a826a9a1571666218c1b55afb91117a2a Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 5 May 2013 21:21:30 +0300 Subject: [PATCH 032/206] mainly doc work --- spring-hibernate3-dao/README.md | 2 +- .../baeldung/spring/persistence/config/PersistenceConfig.java | 4 ++-- spring-hibernate4-dao/README.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-hibernate3-dao/README.md b/spring-hibernate3-dao/README.md index afb2185d6002..89dd04db8206 100644 --- a/spring-hibernate3-dao/README.md +++ b/spring-hibernate3-dao/README.md @@ -1,3 +1,3 @@ -Spring MVC with Java Configuration +Hibernate 3 with Spring ========= diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index e8f448f4c2e6..b59ea8e3414e 100644 --- a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -33,7 +33,7 @@ public PersistenceConfig() { @Bean public AnnotationSessionFactoryBean sessionFactory() { final AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean(); - sessionFactory.setDataSource(restDataSource()); + sessionFactory.setDataSource(dataSource()); sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); @@ -41,7 +41,7 @@ public AnnotationSessionFactoryBean sessionFactory() { } @Bean - public DataSource restDataSource() { + public DataSource dataSource() { final DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); diff --git a/spring-hibernate4-dao/README.md b/spring-hibernate4-dao/README.md index afb2185d6002..12eb079c88b1 100644 --- a/spring-hibernate4-dao/README.md +++ b/spring-hibernate4-dao/README.md @@ -1,3 +1,3 @@ -Spring MVC with Java Configuration +Hibernate 4 with Spring ========= From a79e53e49106346a2392b47f3cba885c0a78e60a Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 7 May 2013 12:35:44 +0300 Subject: [PATCH 033/206] minor eclipse work --- spring-hibernate4-dao/.classpath | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-hibernate4-dao/.classpath b/spring-hibernate4-dao/.classpath index 9c9f508af047..593395a46e93 100644 --- a/spring-hibernate4-dao/.classpath +++ b/spring-hibernate4-dao/.classpath @@ -16,7 +16,7 @@ - + From 68c266c38543b7bb20c0b726b89fa80e3513979c Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 7 May 2013 12:37:22 +0300 Subject: [PATCH 034/206] minor eclipse work --- spring-hibernate3-dao/.classpath | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-hibernate3-dao/.classpath b/spring-hibernate3-dao/.classpath index 9c9f508af047..593395a46e93 100644 --- a/spring-hibernate3-dao/.classpath +++ b/spring-hibernate3-dao/.classpath @@ -16,7 +16,7 @@ - + From 93ad11b90ab606ee853c46579fcf5f61057f37e7 Mon Sep 17 00:00:00 2001 From: Eugen Date: Thu, 9 May 2013 17:11:44 +0300 Subject: [PATCH 035/206] minor doc work --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bae1a993f761..92e85d956fd3 100644 --- a/README.md +++ b/README.md @@ -3,5 +3,19 @@ Spring Tutorials Spring MVC ========= -[Spring MVC Example with Java based Configuration](http://www.baeldung.com/spring-mvc-java-configuration) +[Spring MVC Tutorial](http://www.baeldung.com/spring-mvc-tutorial) + + +Spring Persistence +========= +[Hibernate 3 with Spring](http://www.baeldung.com/hibernate3-spring) + + +Spring Security +========= +[Spring Security Login](http://www.baeldung.com/spring-security-login) + + + + From 15ec7c16120042a20392bf5c604f49ad2188266a Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 11 May 2013 14:27:39 +0300 Subject: [PATCH 036/206] persistence work and tutorial renaming --- .../.classpath | 0 .../.gitignore | 0 .../.project | 0 .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../org.eclipse.wst.common.component | 0 ....eclipse.wst.common.project.facet.core.xml | 0 ...rg.eclipse.wst.jsdt.ui.superType.container | 0 .../org.eclipse.wst.jsdt.ui.superType.name | 0 .../org.eclipse.wst.validation.prefs | 0 .../org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 .../README.md | 0 .../pom.xml | 0 .../persistence/config/PersistenceConfig.java | 0 .../config/PersistenceXmlConfig.java | 0 .../spring/persistence/dao/FooDao.java | 0 .../spring/persistence/dao/IFooDao.java | 0 .../spring/persistence/model/Foo.java | 0 .../persistence/service/FooService.java | 0 .../src/main/resources/logback.xml | 0 .../resources/persistence-mysql.properties | 0 .../src/main/resources/persistenceConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/sample.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/resources/.gitignore | 0 .../.classpath | 0 .../.gitignore | 0 .../.project | 2 +- .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../org.eclipse.wst.common.component | 6 ++-- ....eclipse.wst.common.project.facet.core.xml | 0 ...rg.eclipse.wst.jsdt.ui.superType.container | 0 .../org.eclipse.wst.jsdt.ui.superType.name | 0 .../org.eclipse.wst.validation.prefs | 0 .../org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 .../README.md | 0 .../pom.xml | 6 ++-- .../config/HibernateXmlConfig.java | 18 ++++++++++ .../persistence/config/PersistenceConfig.java | 0 .../spring/persistence/dao/FooDao.java | 0 .../spring/persistence/dao/IFooDao.java | 0 .../spring/persistence/model/Foo.java | 0 .../persistence/service/FooService.java | 0 .../src/main/resources/hibernate4Config.xml | 35 +++++++++++++++++++ .../src/main/resources/logback.xml | 0 .../resources/persistence-mysql.properties | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/sample.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/resources/.gitignore | 0 61 files changed, 60 insertions(+), 7 deletions(-) rename {spring-hibernate3-dao => spring-hibernate3}/.classpath (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.gitignore (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.project (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/.jsdtscope (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.wst.common.component (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-hibernate3-dao => spring-hibernate3}/.springBeans (100%) rename {spring-hibernate3-dao => spring-hibernate3}/README.md (100%) rename {spring-hibernate3-dao => spring-hibernate3}/pom.xml (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/java/org/baeldung/spring/persistence/model/Foo.java (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/java/org/baeldung/spring/persistence/service/FooService.java (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/resources/logback.xml (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/resources/persistence-mysql.properties (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/resources/persistenceConfig.xml (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/webapp/WEB-INF/view/sample.jsp (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-hibernate3-dao => spring-hibernate3}/src/test/resources/.gitignore (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.classpath (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.gitignore (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.project (98%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/.jsdtscope (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.wst.common.component (78%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-hibernate4-dao => spring-hibernate4}/.springBeans (100%) rename {spring-hibernate4-dao => spring-hibernate4}/README.md (100%) rename {spring-hibernate4-dao => spring-hibernate4}/pom.xml (97%) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java rename {spring-hibernate4-dao => spring-hibernate4}/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/java/org/baeldung/spring/persistence/model/Foo.java (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/java/org/baeldung/spring/persistence/service/FooService.java (100%) create mode 100644 spring-hibernate4/src/main/resources/hibernate4Config.xml rename {spring-hibernate4-dao => spring-hibernate4}/src/main/resources/logback.xml (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/resources/persistence-mysql.properties (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/resources/webSecurityConfig.xml (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/webapp/WEB-INF/view/sample.jsp (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-hibernate4-dao => spring-hibernate4}/src/test/resources/.gitignore (100%) diff --git a/spring-hibernate3-dao/.classpath b/spring-hibernate3/.classpath similarity index 100% rename from spring-hibernate3-dao/.classpath rename to spring-hibernate3/.classpath diff --git a/spring-hibernate3-dao/.gitignore b/spring-hibernate3/.gitignore similarity index 100% rename from spring-hibernate3-dao/.gitignore rename to spring-hibernate3/.gitignore diff --git a/spring-hibernate3-dao/.project b/spring-hibernate3/.project similarity index 100% rename from spring-hibernate3-dao/.project rename to spring-hibernate3/.project diff --git a/spring-hibernate3-dao/.settings/.jsdtscope b/spring-hibernate3/.settings/.jsdtscope similarity index 100% rename from spring-hibernate3-dao/.settings/.jsdtscope rename to spring-hibernate3/.settings/.jsdtscope diff --git a/spring-hibernate3-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate3/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.jdt.core.prefs rename to spring-hibernate3/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-hibernate3-dao/.settings/org.eclipse.jdt.ui.prefs b/spring-hibernate3/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.jdt.ui.prefs rename to spring-hibernate3/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-hibernate3-dao/.settings/org.eclipse.m2e.core.prefs b/spring-hibernate3/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.m2e.core.prefs rename to spring-hibernate3/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-hibernate3-dao/.settings/org.eclipse.m2e.wtp.prefs b/spring-hibernate3/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.m2e.wtp.prefs rename to spring-hibernate3/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate3/.settings/org.eclipse.wst.common.component similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.wst.common.component rename to spring-hibernate3/.settings/org.eclipse.wst.common.component diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-hibernate3/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-hibernate3/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-hibernate3/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-hibernate3/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-hibernate3/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-hibernate3/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.validation.prefs b/spring-hibernate3/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.wst.validation.prefs rename to spring-hibernate3/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-hibernate3-dao/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-hibernate3/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-hibernate3-dao/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-hibernate3/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-hibernate3-dao/.springBeans b/spring-hibernate3/.springBeans similarity index 100% rename from spring-hibernate3-dao/.springBeans rename to spring-hibernate3/.springBeans diff --git a/spring-hibernate3-dao/README.md b/spring-hibernate3/README.md similarity index 100% rename from spring-hibernate3-dao/README.md rename to spring-hibernate3/README.md diff --git a/spring-hibernate3-dao/pom.xml b/spring-hibernate3/pom.xml similarity index 100% rename from spring-hibernate3-dao/pom.xml rename to spring-hibernate3/pom.xml diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java similarity index 100% rename from spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java similarity index 100% rename from spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java similarity index 100% rename from spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java similarity index 100% rename from spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java similarity index 100% rename from spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java diff --git a/spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java similarity index 100% rename from spring-hibernate3-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java diff --git a/spring-hibernate3-dao/src/main/resources/logback.xml b/spring-hibernate3/src/main/resources/logback.xml similarity index 100% rename from spring-hibernate3-dao/src/main/resources/logback.xml rename to spring-hibernate3/src/main/resources/logback.xml diff --git a/spring-hibernate3-dao/src/main/resources/persistence-mysql.properties b/spring-hibernate3/src/main/resources/persistence-mysql.properties similarity index 100% rename from spring-hibernate3-dao/src/main/resources/persistence-mysql.properties rename to spring-hibernate3/src/main/resources/persistence-mysql.properties diff --git a/spring-hibernate3-dao/src/main/resources/persistenceConfig.xml b/spring-hibernate3/src/main/resources/persistenceConfig.xml similarity index 100% rename from spring-hibernate3-dao/src/main/resources/persistenceConfig.xml rename to spring-hibernate3/src/main/resources/persistenceConfig.xml diff --git a/spring-hibernate3-dao/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate3/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-hibernate3-dao/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-hibernate3/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-hibernate3-dao/src/main/webapp/WEB-INF/view/sample.jsp b/spring-hibernate3/src/main/webapp/WEB-INF/view/sample.jsp similarity index 100% rename from spring-hibernate3-dao/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-hibernate3/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-hibernate3-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate3/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-hibernate3-dao/src/main/webapp/WEB-INF/web.xml rename to spring-hibernate3/src/main/webapp/WEB-INF/web.xml diff --git a/spring-hibernate3-dao/src/test/resources/.gitignore b/spring-hibernate3/src/test/resources/.gitignore similarity index 100% rename from spring-hibernate3-dao/src/test/resources/.gitignore rename to spring-hibernate3/src/test/resources/.gitignore diff --git a/spring-hibernate4-dao/.classpath b/spring-hibernate4/.classpath similarity index 100% rename from spring-hibernate4-dao/.classpath rename to spring-hibernate4/.classpath diff --git a/spring-hibernate4-dao/.gitignore b/spring-hibernate4/.gitignore similarity index 100% rename from spring-hibernate4-dao/.gitignore rename to spring-hibernate4/.gitignore diff --git a/spring-hibernate4-dao/.project b/spring-hibernate4/.project similarity index 98% rename from spring-hibernate4-dao/.project rename to spring-hibernate4/.project index 320788977023..233d73c017ac 100644 --- a/spring-hibernate4-dao/.project +++ b/spring-hibernate4/.project @@ -1,6 +1,6 @@ - spring-hibernate4-dao + spring-hibernate4 diff --git a/spring-hibernate4-dao/.settings/.jsdtscope b/spring-hibernate4/.settings/.jsdtscope similarity index 100% rename from spring-hibernate4-dao/.settings/.jsdtscope rename to spring-hibernate4/.settings/.jsdtscope diff --git a/spring-hibernate4-dao/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.jdt.core.prefs rename to spring-hibernate4/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-hibernate4-dao/.settings/org.eclipse.jdt.ui.prefs b/spring-hibernate4/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.jdt.ui.prefs rename to spring-hibernate4/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-hibernate4-dao/.settings/org.eclipse.m2e.core.prefs b/spring-hibernate4/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.m2e.core.prefs rename to spring-hibernate4/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-hibernate4-dao/.settings/org.eclipse.m2e.wtp.prefs b/spring-hibernate4/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.m2e.wtp.prefs rename to spring-hibernate4/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-hibernate4-dao/.settings/org.eclipse.wst.common.component b/spring-hibernate4/.settings/org.eclipse.wst.common.component similarity index 78% rename from spring-hibernate4-dao/.settings/org.eclipse.wst.common.component rename to spring-hibernate4/.settings/org.eclipse.wst.common.component index 2746e4b44396..619260207900 100644 --- a/spring-hibernate4-dao/.settings/org.eclipse.wst.common.component +++ b/spring-hibernate4/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-hibernate4-dao/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-hibernate4/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-hibernate4/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-hibernate4/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-hibernate4/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-hibernate4/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-hibernate4/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-hibernate4-dao/.settings/org.eclipse.wst.validation.prefs b/spring-hibernate4/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.wst.validation.prefs rename to spring-hibernate4/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-hibernate4-dao/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-hibernate4/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-hibernate4-dao/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-hibernate4/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-hibernate4-dao/.springBeans b/spring-hibernate4/.springBeans similarity index 100% rename from spring-hibernate4-dao/.springBeans rename to spring-hibernate4/.springBeans diff --git a/spring-hibernate4-dao/README.md b/spring-hibernate4/README.md similarity index 100% rename from spring-hibernate4-dao/README.md rename to spring-hibernate4/README.md diff --git a/spring-hibernate4-dao/pom.xml b/spring-hibernate4/pom.xml similarity index 97% rename from spring-hibernate4-dao/pom.xml rename to spring-hibernate4/pom.xml index 940289493dc9..c7171e0acdc5 100644 --- a/spring-hibernate4-dao/pom.xml +++ b/spring-hibernate4/pom.xml @@ -1,10 +1,10 @@ 4.0.0 org.baeldung - spring-hibernate4-dao + spring-hibernate4 0.1-SNAPSHOT - spring-hibernate4-dao + spring-hibernate4 war @@ -86,7 +86,7 @@ - spring-hibernate4-dao + spring-hibernate4 src/main/resources diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java new file mode 100644 index 000000000000..51fbcd27c16d --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java @@ -0,0 +1,18 @@ +package org.baeldung.spring.persistence.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ImportResource({ "classpath:hibernate4Config.xml" }) +public class HibernateXmlConfig { + + public HibernateXmlConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java similarity index 100% rename from spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java diff --git a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java similarity index 100% rename from spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java diff --git a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java similarity index 100% rename from spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java diff --git a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java similarity index 100% rename from spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/model/Foo.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java diff --git a/spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java similarity index 100% rename from spring-hibernate4-dao/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java diff --git a/spring-hibernate4/src/main/resources/hibernate4Config.xml b/spring-hibernate4/src/main/resources/hibernate4Config.xml new file mode 100644 index 000000000000..f35de2a4c5db --- /dev/null +++ b/spring-hibernate4/src/main/resources/hibernate4Config.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + ${hibernate.hbm2ddl.auto} + ${hibernate.dialect} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-hibernate4-dao/src/main/resources/logback.xml b/spring-hibernate4/src/main/resources/logback.xml similarity index 100% rename from spring-hibernate4-dao/src/main/resources/logback.xml rename to spring-hibernate4/src/main/resources/logback.xml diff --git a/spring-hibernate4-dao/src/main/resources/persistence-mysql.properties b/spring-hibernate4/src/main/resources/persistence-mysql.properties similarity index 100% rename from spring-hibernate4-dao/src/main/resources/persistence-mysql.properties rename to spring-hibernate4/src/main/resources/persistence-mysql.properties diff --git a/spring-hibernate4-dao/src/main/resources/webSecurityConfig.xml b/spring-hibernate4/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-hibernate4-dao/src/main/resources/webSecurityConfig.xml rename to spring-hibernate4/src/main/resources/webSecurityConfig.xml diff --git a/spring-hibernate4-dao/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate4/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-hibernate4-dao/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-hibernate4/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-hibernate4-dao/src/main/webapp/WEB-INF/view/sample.jsp b/spring-hibernate4/src/main/webapp/WEB-INF/view/sample.jsp similarity index 100% rename from spring-hibernate4-dao/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-hibernate4/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-hibernate4-dao/src/main/webapp/WEB-INF/web.xml b/spring-hibernate4/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-hibernate4-dao/src/main/webapp/WEB-INF/web.xml rename to spring-hibernate4/src/main/webapp/WEB-INF/web.xml diff --git a/spring-hibernate4-dao/src/test/resources/.gitignore b/spring-hibernate4/src/test/resources/.gitignore similarity index 100% rename from spring-hibernate4-dao/src/test/resources/.gitignore rename to spring-hibernate4/src/test/resources/.gitignore From aaa1111c79adaf21b718b84a64db8131b63fc032 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 11 May 2013 16:43:45 +0300 Subject: [PATCH 037/206] initial exception work --- .../.classpath | 31 ++++ .../.gitignore | 13 ++ spring-beandefinitionstoreexception/.project | 60 +++++++ .../.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 12 ++ .../.settings/org.eclipse.jdt.ui.prefs | 55 ++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + .../.springBeans | 14 ++ spring-beandefinitionstoreexception/README.md | 3 + spring-beandefinitionstoreexception/pom.xml | 157 ++++++++++++++++++ .../config/HibernateXmlConfig.java | 18 ++ .../persistence/config/PersistenceConfig.java | 79 +++++++++ .../spring/persistence/dao/FooDao.java | 14 ++ .../spring/persistence/dao/IFooDao.java | 5 + .../spring/persistence/model/Foo.java | 31 ++++ .../persistence/service/FooService.java | 19 +++ .../src/main/resources/hibernate4Config.xml | 35 ++++ .../src/main/resources/logback.xml | 60 +++++++ .../resources/persistence-mysql.properties | 10 ++ .../src/main/resources/webSecurityConfig.xml | 36 ++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 17 ++ .../src/test/resources/.gitignore | 13 ++ 31 files changed, 747 insertions(+) create mode 100644 spring-beandefinitionstoreexception/.classpath create mode 100644 spring-beandefinitionstoreexception/.gitignore create mode 100644 spring-beandefinitionstoreexception/.project create mode 100644 spring-beandefinitionstoreexception/.settings/.jsdtscope create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-beandefinitionstoreexception/.springBeans create mode 100644 spring-beandefinitionstoreexception/README.md create mode 100644 spring-beandefinitionstoreexception/pom.xml create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java create mode 100644 spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml create mode 100644 spring-beandefinitionstoreexception/src/main/resources/logback.xml create mode 100644 spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties create mode 100644 spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml create mode 100644 spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-beandefinitionstoreexception/src/test/resources/.gitignore diff --git a/spring-beandefinitionstoreexception/.classpath b/spring-beandefinitionstoreexception/.classpath new file mode 100644 index 000000000000..593395a46e93 --- /dev/null +++ b/spring-beandefinitionstoreexception/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-beandefinitionstoreexception/.gitignore b/spring-beandefinitionstoreexception/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-beandefinitionstoreexception/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/.project b/spring-beandefinitionstoreexception/.project new file mode 100644 index 000000000000..bb38a257540a --- /dev/null +++ b/spring-beandefinitionstoreexception/.project @@ -0,0 +1,60 @@ + + + spring-beandefinitionstoreexception + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-beandefinitionstoreexception/.settings/.jsdtscope b/spring-beandefinitionstoreexception/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..62492222ad2e --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.ui.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.core.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.wtp.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..bb5464963efb --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.validation.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-beandefinitionstoreexception/.springBeans b/spring-beandefinitionstoreexception/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-beandefinitionstoreexception/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-beandefinitionstoreexception/README.md b/spring-beandefinitionstoreexception/README.md new file mode 100644 index 000000000000..12eb079c88b1 --- /dev/null +++ b/spring-beandefinitionstoreexception/README.md @@ -0,0 +1,3 @@ +Hibernate 4 with Spring +========= + diff --git a/spring-beandefinitionstoreexception/pom.xml b/spring-beandefinitionstoreexception/pom.xml new file mode 100644 index 000000000000..02cd5f48c9f6 --- /dev/null +++ b/spring-beandefinitionstoreexception/pom.xml @@ -0,0 +1,157 @@ + + 4.0.0 + org.baeldung + spring-beandefinitionstoreexception + 0.1-SNAPSHOT + + spring-beandefinitionstoreexception + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + 4.2.1.Final + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + 5.1.25 + runtime + + + + + + com.google.guava + guava + 14.0.1 + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-beandefinitionstoreexception + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java new file mode 100644 index 000000000000..51fbcd27c16d --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java @@ -0,0 +1,18 @@ +package org.baeldung.spring.persistence.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ImportResource({ "classpath:hibernate4Config.xml" }) +public class HibernateXmlConfig { + + public HibernateXmlConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java new file mode 100644 index 000000000000..3157c92e9924 --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -0,0 +1,79 @@ +package org.baeldung.spring.persistence.config; + +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.google.common.base.Preconditions; + +@Configuration +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +public class PersistenceConfig { + + @Autowired + private Environment env; + + public PersistenceConfig() { + super(); + } + + @Bean + public LocalSessionFactoryBean sessionFactory() { + final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(sessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java new file mode 100644 index 000000000000..a59bb30f48b1 --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.persistence.dao; + +import org.springframework.stereotype.Repository; + +@Repository +public class FooDao implements IFooDao { + + public FooDao() { + super(); + } + + // API + +} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..91d44f5f6bfb --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -0,0 +1,5 @@ +package org.baeldung.spring.persistence.dao; + +public interface IFooDao { + // +} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java new file mode 100644 index 000000000000..8842c26d95b1 --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -0,0 +1,31 @@ +package org.baeldung.spring.persistence.model; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Foo { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + public Foo() { + super(); + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + // + +} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java new file mode 100644 index 000000000000..cda31a0e86ef --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -0,0 +1,19 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.IFooDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + @Autowired + private IFooDao fooDao; + + public FooService() { + super(); + } + + // API + +} diff --git a/spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml b/spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml new file mode 100644 index 000000000000..f35de2a4c5db --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + ${hibernate.hbm2ddl.auto} + ${hibernate.dialect} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/resources/logback.xml b/spring-beandefinitionstoreexception/src/main/resources/logback.xml new file mode 100644 index 000000000000..976d267d7d16 --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/resources/logback.xml @@ -0,0 +1,60 @@ + + + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + /var/log/launchpad/launchpad_web.log + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + ERROR + + email-smtp.us-east-1.amazonaws.com + AKIAJI6XLSOAQX3IW6HQ + AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED + true + hanriseldon@gmail.com + info@applieddatalabs.com + TESTING: %logger{20} - %m + + web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties b/spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties new file mode 100644 index 000000000000..a1ff997616ae --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.user=tutorialuser +jdbc.pass=tutorialmy5ql + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=false +hibernate.hbm2ddl.auto=create-drop diff --git a/spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml b/spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..e0de9aefd45a --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,17 @@ + + + Spring MVC Application + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.persistence.config + + + org.springframework.web.context.ContextLoaderListener + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/test/resources/.gitignore b/spring-beandefinitionstoreexception/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-beandefinitionstoreexception/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From fdfb24d960ea252b96cff6b213fe3e492413cf2a Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 11 May 2013 17:04:57 +0300 Subject: [PATCH 038/206] mvc work to replicate the error --- spring-beandefinitionstoreexception/pom.xml | 22 +----- .../config/HibernateXmlConfig.java | 18 ----- .../persistence/config/PersistenceConfig.java | 79 ------------------- .../spring/persistence/dao/FooDao.java | 14 ---- .../spring/persistence/dao/IFooDao.java | 5 -- .../spring/persistence/model/Foo.java | 31 -------- .../persistence/service/FooService.java | 19 ----- .../spring/web/config/ClientWebConfig.java | 39 +++++++++ .../src/main/resources/hibernate4Config.xml | 35 -------- .../resources/persistence-mysql.properties | 10 --- .../src/main/webapp/WEB-INF/web.xml | 55 +++++++++---- 11 files changed, 81 insertions(+), 246 deletions(-) delete mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java delete mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java delete mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java delete mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java delete mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java delete mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java create mode 100644 spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java delete mode 100644 spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml delete mode 100644 spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties diff --git a/spring-beandefinitionstoreexception/pom.xml b/spring-beandefinitionstoreexception/pom.xml index 02cd5f48c9f6..b5f593a1f1b9 100644 --- a/spring-beandefinitionstoreexception/pom.xml +++ b/spring-beandefinitionstoreexception/pom.xml @@ -18,34 +18,16 @@
org.springframework - spring-orm + spring-webmvc ${org.springframework.version} + org.springframework spring-context ${org.springframework.version} - - - - org.hibernate - hibernate-core - 4.2.1.Final - - - org.javassist - javassist - 3.17.1-GA - - - mysql - mysql-connector-java - 5.1.25 - runtime - - diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java deleted file mode 100644 index 51fbcd27c16d..000000000000 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.baeldung.spring.persistence.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.ImportResource; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -@Configuration -@EnableTransactionManagement -@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) -@ImportResource({ "classpath:hibernate4Config.xml" }) -public class HibernateXmlConfig { - - public HibernateXmlConfig() { - super(); - } - -} \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java deleted file mode 100644 index 3157c92e9924..000000000000 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.baeldung.spring.persistence.config; - -import java.util.Properties; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.hibernate4.HibernateTransactionManager; -import org.springframework.orm.hibernate4.LocalSessionFactoryBean; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -import com.google.common.base.Preconditions; - -@Configuration -@EnableTransactionManagement -@PropertySource({ "classpath:persistence-mysql.properties" }) -@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) -public class PersistenceConfig { - - @Autowired - private Environment env; - - public PersistenceConfig() { - super(); - } - - @Bean - public LocalSessionFactoryBean sessionFactory() { - final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); - sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); - sessionFactory.setHibernateProperties(hibernateProperties()); - - return sessionFactory; - } - - @Bean - public DataSource restDataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); - dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); - dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); - dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); - dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); - - return dataSource; - } - - @Bean - public HibernateTransactionManager transactionManager() { - final HibernateTransactionManager txManager = new HibernateTransactionManager(); - txManager.setSessionFactory(sessionFactory().getObject()); - - return txManager; - } - - @Bean - public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { - return new PersistenceExceptionTranslationPostProcessor(); - } - - final Properties hibernateProperties() { - return new Properties() { - { - setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); - setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); - - // setProperty("hibernate.globally_quoted_identifiers", "true"); - // note: necessary in launchpad-storage, but causing problems here - } - }; - } -} \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java deleted file mode 100644 index a59bb30f48b1..000000000000 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.baeldung.spring.persistence.dao; - -import org.springframework.stereotype.Repository; - -@Repository -public class FooDao implements IFooDao { - - public FooDao() { - super(); - } - - // API - -} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java deleted file mode 100644 index 91d44f5f6bfb..000000000000 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.spring.persistence.dao; - -public interface IFooDao { - // -} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java deleted file mode 100644 index 8842c26d95b1..000000000000 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.baeldung.spring.persistence.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; - -@Entity -public class Foo { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private long id; - - public Foo() { - super(); - } - - // API - - public long getId() { - return id; - } - - public void setId(final long id) { - this.id = id; - } - - // - -} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java deleted file mode 100644 index cda31a0e86ef..000000000000 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.baeldung.spring.persistence.service; - -import org.baeldung.spring.persistence.dao.IFooDao; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Service -public class FooService { - - @Autowired - private IFooDao fooDao; - - public FooService() { - super(); - } - - // API - -} diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..2758a707e6bc --- /dev/null +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml b/spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml deleted file mode 100644 index f35de2a4c5db..000000000000 --- a/spring-beandefinitionstoreexception/src/main/resources/hibernate4Config.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - ${hibernate.hbm2ddl.auto} - ${hibernate.dialect} - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties b/spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties deleted file mode 100644 index a1ff997616ae..000000000000 --- a/spring-beandefinitionstoreexception/src/main/resources/persistence-mysql.properties +++ /dev/null @@ -1,10 +0,0 @@ -# jdbc.X -jdbc.driverClassName=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true -jdbc.user=tutorialuser -jdbc.pass=tutorialmy5ql - -# hibernate.X -hibernate.dialect=org.hibernate.dialect.MySQL5Dialect -hibernate.show_sql=false -hibernate.hbm2ddl.auto=create-drop diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml index e0de9aefd45a..ba2bb591ed01 100644 --- a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml +++ b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml @@ -1,17 +1,42 @@ - - Spring MVC Application - - contextClass - - org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - - contextConfigLocation - org.baeldung.spring.persistence.config - - - org.springframework.web.context.ContextLoaderListener - + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + \ No newline at end of file From 80c15f30f394cbc940b2a9f3c3fed526593fb9f2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 11 May 2013 23:59:10 +0300 Subject: [PATCH 039/206] exception work --- .../spring/web/config/ClientWebConfig.java | 35 ++++++++++--------- .../src/main/webapp/WEB-INF/mvc-servlet.xml | 5 ++- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 2758a707e6bc..ba82fef1017e 100644 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -11,29 +11,30 @@ @EnableWebMvc @Configuration +// @ImportResource("beans.xml") public class ClientWebConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { - super(); - } + public ClientWebConfig() { + super(); + } - // API + // API - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); - registry.addViewController("/sample.html"); - } + registry.addViewController("/sample.html"); + } - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); - return bean; - } + return bean; + } } \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml index 5463820874c8..0e0ded0a71cb 100644 --- a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml +++ b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -1,6 +1,5 @@ - + \ No newline at end of file From e23d9ce1ef292b0f1a19e9f6075327989a0e1b24 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 12 May 2013 11:15:16 +0300 Subject: [PATCH 040/206] cleanup work, initial work on new project --- .../.settings/.jsdtscope | 12 -- .../.settings/org.eclipse.jdt.core.prefs | 12 -- spring-beandefinitionstoreexception/README.md | 3 - spring-beandefinitionstoreexception/pom.xml | 139 ------------- .../src/main/resources/webSecurityConfig.xml | 36 ---- .../src/main/webapp/WEB-INF/mvc-servlet.xml | 5 - .../.classpath | 2 +- ...e.wst.jsdt.core.javascriptValidator.launch | 7 + .../.gitignore | 0 .../.project | 3 +- .../.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 +++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../org.eclipse.wst.common.component | 6 +- ....eclipse.wst.common.project.facet.core.xml | 1 - ...rg.eclipse.wst.jsdt.ui.superType.container | 0 .../org.eclipse.wst.jsdt.ui.superType.name | 0 .../org.eclipse.wst.validation.prefs | 0 .../org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 spring-security-basic-auth/README.md | 3 + spring-security-basic-auth/pom.xml | 192 ++++++++++++++++++ .../spring/web/config/ClientWebConfig.java | 36 ++-- .../spring/web/config/SecSecurityConfig.java | 14 ++ .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 29 +++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 26 +++ .../src/main/webapp/WEB-INF/web.xml | 10 + .../src/test/resources/.gitignore | 0 33 files changed, 410 insertions(+), 232 deletions(-) delete mode 100644 spring-beandefinitionstoreexception/.settings/.jsdtscope delete mode 100644 spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs delete mode 100644 spring-beandefinitionstoreexception/README.md delete mode 100644 spring-beandefinitionstoreexception/pom.xml delete mode 100644 spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml delete mode 100644 spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.classpath (93%) create mode 100644 spring-security-basic-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.gitignore (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.project (94%) create mode 100644 spring-security-basic-auth/.settings/.jsdtscope create mode 100644 spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.wst.common.component (65%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.wst.common.project.facet.core.xml (76%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/.springBeans (100%) create mode 100644 spring-security-basic-auth/README.md create mode 100644 spring-security-basic-auth/pom.xml rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java (54%) create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/src/main/resources/logback.xml (100%) create mode 100644 spring-security-basic-auth/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-basic-auth/src/main/webapp/WEB-INF/mvc-servlet.xml rename spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp => spring-security-basic-auth/src/main/webapp/WEB-INF/view/homepage.jsp (100%) create mode 100644 spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/src/main/webapp/WEB-INF/web.xml (80%) rename {spring-beandefinitionstoreexception => spring-security-basic-auth}/src/test/resources/.gitignore (100%) diff --git a/spring-beandefinitionstoreexception/.settings/.jsdtscope b/spring-beandefinitionstoreexception/.settings/.jsdtscope deleted file mode 100644 index b46b9207a89e..000000000000 --- a/spring-beandefinitionstoreexception/.settings/.jsdtscope +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs b/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 62492222ad2e..000000000000 --- a/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-beandefinitionstoreexception/README.md b/spring-beandefinitionstoreexception/README.md deleted file mode 100644 index 12eb079c88b1..000000000000 --- a/spring-beandefinitionstoreexception/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Hibernate 4 with Spring -========= - diff --git a/spring-beandefinitionstoreexception/pom.xml b/spring-beandefinitionstoreexception/pom.xml deleted file mode 100644 index b5f593a1f1b9..000000000000 --- a/spring-beandefinitionstoreexception/pom.xml +++ /dev/null @@ -1,139 +0,0 @@ - - 4.0.0 - org.baeldung - spring-beandefinitionstoreexception - 0.1-SNAPSHOT - - spring-beandefinitionstoreexception - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - org.springframework - spring-context - ${org.springframework.version} - - - - - - com.google.guava - guava - 14.0.1 - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-beandefinitionstoreexception - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.2.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.4 - - 1.8.0 - 1.8.9 - - - - \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml b/spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml deleted file mode 100644 index 5569cc69508a..000000000000 --- a/spring-beandefinitionstoreexception/src/main/resources/webSecurityConfig.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml deleted file mode 100644 index 0e0ded0a71cb..000000000000 --- a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/mvc-servlet.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/.classpath b/spring-security-basic-auth/.classpath similarity index 93% rename from spring-beandefinitionstoreexception/.classpath rename to spring-security-basic-auth/.classpath index 593395a46e93..5dea19367768 100644 --- a/spring-beandefinitionstoreexception/.classpath +++ b/spring-security-basic-auth/.classpath @@ -16,7 +16,7 @@ - + diff --git a/spring-security-basic-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-basic-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-basic-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-beandefinitionstoreexception/.gitignore b/spring-security-basic-auth/.gitignore similarity index 100% rename from spring-beandefinitionstoreexception/.gitignore rename to spring-security-basic-auth/.gitignore diff --git a/spring-beandefinitionstoreexception/.project b/spring-security-basic-auth/.project similarity index 94% rename from spring-beandefinitionstoreexception/.project rename to spring-security-basic-auth/.project index bb38a257540a..49eecbd6a380 100644 --- a/spring-beandefinitionstoreexception/.project +++ b/spring-security-basic-auth/.project @@ -1,6 +1,6 @@ - spring-beandefinitionstoreexception + spring-security-login @@ -54,7 +54,6 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-security-basic-auth/.settings/.jsdtscope b/spring-security-basic-auth/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-basic-auth/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs b/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..723e5b12451a --- /dev/null +++ b/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.ui.prefs b/spring-security-basic-auth/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.jdt.ui.prefs rename to spring-security-basic-auth/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.core.prefs b/spring-security-basic-auth/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.core.prefs rename to spring-security-basic-auth/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-basic-auth/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.m2e.wtp.prefs rename to spring-security-basic-auth/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component b/spring-security-basic-auth/.settings/org.eclipse.wst.common.component similarity index 65% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component rename to spring-security-basic-auth/.settings/org.eclipse.wst.common.component index bb5464963efb..c42e29f80edc 100644 --- a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.component +++ b/spring-security-basic-auth/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-basic-auth/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 76% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-security-basic-auth/.settings/org.eclipse.wst.common.project.facet.core.xml index a67649dfa5ae..b46bc511b943 100644 --- a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/spring-security-basic-auth/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,6 +1,5 @@ - diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-basic-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-security-basic-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-basic-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-security-basic-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.validation.prefs b/spring-security-basic-auth/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.wst.validation.prefs rename to spring-security-basic-auth/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-beandefinitionstoreexception/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-basic-auth/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-beandefinitionstoreexception/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-security-basic-auth/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-beandefinitionstoreexception/.springBeans b/spring-security-basic-auth/.springBeans similarity index 100% rename from spring-beandefinitionstoreexception/.springBeans rename to spring-security-basic-auth/.springBeans diff --git a/spring-security-basic-auth/README.md b/spring-security-basic-auth/README.md new file mode 100644 index 000000000000..7cc97242ec04 --- /dev/null +++ b/spring-security-basic-auth/README.md @@ -0,0 +1,3 @@ +Spring Security Login +========= + diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml new file mode 100644 index 000000000000..d8cecabcdb63 --- /dev/null +++ b/spring-security-basic-auth/pom.xml @@ -0,0 +1,192 @@ + + 4.0.0 + org.baeldung + spring-security-login + 0.1-SNAPSHOT + + spring-security-login + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-login + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + 3.1.4.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java similarity index 54% rename from spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index ba82fef1017e..4aadc3a48c92 100644 --- a/spring-beandefinitionstoreexception/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -11,30 +11,30 @@ @EnableWebMvc @Configuration -// @ImportResource("beans.xml") public class ClientWebConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { - super(); - } + public ClientWebConfig() { + super(); + } - // API + // API - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); - registry.addViewController("/sample.html"); - } + registry.addViewController("/login.html"); + registry.addViewController("/homepage.html"); + } - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); - return bean; - } + return bean; + } } \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java new file mode 100644 index 000000000000..65a571c71589 --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-beandefinitionstoreexception/src/main/resources/logback.xml b/spring-security-basic-auth/src/main/resources/logback.xml similarity index 100% rename from spring-beandefinitionstoreexception/src/main/resources/logback.xml rename to spring-security-basic-auth/src/main/resources/logback.xml diff --git a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..6394c926995b --- /dev/null +++ b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-basic-auth/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-basic-auth/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp b/spring-security-basic-auth/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-security-basic-auth/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp new file mode 100644 index 000000000000..013ceccb4e4d --- /dev/null +++ b/spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp @@ -0,0 +1,26 @@ + + + + +

Login

+ + + +
+ + + + + + + + + + + +
User:
Password:
+ +
+ + + \ No newline at end of file diff --git a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml similarity index 80% rename from spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml rename to spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml index ba2bb591ed01..23e0e8c1d7b0 100644 --- a/spring-beandefinitionstoreexception/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml @@ -35,6 +35,16 @@ / + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + index.html diff --git a/spring-beandefinitionstoreexception/src/test/resources/.gitignore b/spring-security-basic-auth/src/test/resources/.gitignore similarity index 100% rename from spring-beandefinitionstoreexception/src/test/resources/.gitignore rename to spring-security-basic-auth/src/test/resources/.gitignore From 6531ae264d0415579b026d384a0c406b563aeef2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 12 May 2013 11:17:06 +0300 Subject: [PATCH 041/206] project cleanup work --- spring-security-basic-auth/.project | 2 +- .../.settings/org.eclipse.wst.common.component | 6 +++--- spring-security-basic-auth/pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-security-basic-auth/.project b/spring-security-basic-auth/.project index 49eecbd6a380..f2aa3ca83eb0 100644 --- a/spring-security-basic-auth/.project +++ b/spring-security-basic-auth/.project @@ -1,6 +1,6 @@ - spring-security-login + spring-security-basic-auth diff --git a/spring-security-basic-auth/.settings/org.eclipse.wst.common.component b/spring-security-basic-auth/.settings/org.eclipse.wst.common.component index c42e29f80edc..83a7bf94e7a2 100644 --- a/spring-security-basic-auth/.settings/org.eclipse.wst.common.component +++ b/spring-security-basic-auth/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index d8cecabcdb63..fa41a090e6ed 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-security-login + spring-security-basic-auth 0.1-SNAPSHOT - spring-security-login + spring-security-basic-auth war @@ -120,7 +120,7 @@ - spring-security-login + spring-security-basic-auth src/main/resources From 04da22438dc3608d0832fc655cb2b771f8631a9c Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 12 May 2013 11:20:31 +0300 Subject: [PATCH 042/206] basic auth work --- .../src/main/resources/webSecurityConfig.xml | 36 ++++++++----------- .../src/main/webapp/WEB-INF/view/login.jsp | 26 -------------- 2 files changed, 15 insertions(+), 47 deletions(-) delete mode 100644 spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml index 6394c926995b..d2a28094461e 100644 --- a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml @@ -1,29 +1,23 @@ - - - - + + + - + + + - - - - - - - - - + + + + + + + \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp deleted file mode 100644 index 013ceccb4e4d..000000000000 --- a/spring-security-basic-auth/src/main/webapp/WEB-INF/view/login.jsp +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

Login

- -
- - - - - - - - - - - - - -
User:
Password:
- -
- - - \ No newline at end of file From d49f3686e4926335ba532b1fe0ac95035f333476 Mon Sep 17 00:00:00 2001 From: Eugen Date: Tue, 14 May 2013 18:25:34 +0300 Subject: [PATCH 043/206] doc work --- spring-mvc-java/README.md | 2 +- spring-mvc-xml/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-mvc-java/README.md b/spring-mvc-java/README.md index afb2185d6002..1abc096086ed 100644 --- a/spring-mvc-java/README.md +++ b/spring-mvc-java/README.md @@ -1,3 +1,3 @@ -Spring MVC with Java Configuration +[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) ========= diff --git a/spring-mvc-xml/README.md b/spring-mvc-xml/README.md index afb2185d6002..1abc096086ed 100644 --- a/spring-mvc-xml/README.md +++ b/spring-mvc-xml/README.md @@ -1,3 +1,3 @@ -Spring MVC with Java Configuration +[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) ========= From 158195c7207e8d7cb7072f375a309572ba1cda1d Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 15 May 2013 18:03:51 +0300 Subject: [PATCH 044/206] logging fixes and new project --- .../src/main/resources/logback.xml | 40 ----- .../src/main/resources/logback.xml | 40 ----- .../src/main/resources/logback.xml | 40 ----- .../src/main/resources/webSecurityConfig.xml | 36 ----- spring-mvc-xml/src/main/resources/logback.xml | 40 ----- spring-mvc/.classpath | 37 +++++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-mvc/.gitignore | 13 ++ spring-mvc/.project | 60 ++++++++ spring-mvc/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 91 +++++++++++ spring-mvc/.settings/org.eclipse.jdt.ui.prefs | 55 +++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-mvc/.springBeans | 14 ++ spring-mvc/README.md | 3 + spring-mvc/pom.xml | 142 ++++++++++++++++++ .../spring/web/config/ClientWebConfig.java | 39 +++++ .../spring/web/controller/FooController.java | 21 +++ spring-mvc/src/main/resources/logback.xml | 20 +++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + spring-mvc/src/main/webapp/WEB-INF/web.xml | 42 ++++++ spring-mvc/src/test/resources/.gitignore | 13 ++ .../src/main/resources/logback.xml | 40 ----- .../src/main/resources/logback.xml | 40 ----- 32 files changed, 622 insertions(+), 276 deletions(-) delete mode 100644 spring-mvc-java/src/main/resources/webSecurityConfig.xml create mode 100644 spring-mvc/.classpath create mode 100644 spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-mvc/.gitignore create mode 100644 spring-mvc/.project create mode 100644 spring-mvc/.settings/.jsdtscope create mode 100644 spring-mvc/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-mvc/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-mvc/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-mvc/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-mvc/.settings/org.eclipse.wst.common.component create mode 100644 spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-mvc/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-mvc/.springBeans create mode 100644 spring-mvc/README.md create mode 100644 spring-mvc/pom.xml create mode 100644 spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java create mode 100644 spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java create mode 100644 spring-mvc/src/main/resources/logback.xml create mode 100644 spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-mvc/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-mvc/src/test/resources/.gitignore diff --git a/spring-hibernate3/src/main/resources/logback.xml b/spring-hibernate3/src/main/resources/logback.xml index 976d267d7d16..1146dade632e 100644 --- a/spring-hibernate3/src/main/resources/logback.xml +++ b/spring-hibernate3/src/main/resources/logback.xml @@ -1,7 +1,5 @@ - - web - %date [%thread] %-5level %logger{36} - %message%n @@ -9,42 +7,6 @@ - - /var/log/launchpad/launchpad_web.log - - web - %date [%thread] %-5level %logger{36} - %message%n - - - - - - - - ERROR - - email-smtp.us-east-1.amazonaws.com - AKIAJI6XLSOAQX3IW6HQ - AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED - true - hanriseldon@gmail.com - info@applieddatalabs.com - TESTING: %logger{20} - %m - - web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n - - - 1000 - - - - - - - - - - - @@ -53,8 +15,6 @@ - - \ No newline at end of file diff --git a/spring-hibernate4/src/main/resources/logback.xml b/spring-hibernate4/src/main/resources/logback.xml index 976d267d7d16..1146dade632e 100644 --- a/spring-hibernate4/src/main/resources/logback.xml +++ b/spring-hibernate4/src/main/resources/logback.xml @@ -1,7 +1,5 @@ - - web - %date [%thread] %-5level %logger{36} - %message%n @@ -9,42 +7,6 @@ - - /var/log/launchpad/launchpad_web.log - - web - %date [%thread] %-5level %logger{36} - %message%n - - - - - - - - ERROR - - email-smtp.us-east-1.amazonaws.com - AKIAJI6XLSOAQX3IW6HQ - AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED - true - hanriseldon@gmail.com - info@applieddatalabs.com - TESTING: %logger{20} - %m - - web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n - - - 1000 - - - - - - - - - - - @@ -53,8 +15,6 @@ - - \ No newline at end of file diff --git a/spring-mvc-java/src/main/resources/logback.xml b/spring-mvc-java/src/main/resources/logback.xml index 976d267d7d16..1146dade632e 100644 --- a/spring-mvc-java/src/main/resources/logback.xml +++ b/spring-mvc-java/src/main/resources/logback.xml @@ -1,7 +1,5 @@ - - web - %date [%thread] %-5level %logger{36} - %message%n @@ -9,42 +7,6 @@ - - /var/log/launchpad/launchpad_web.log - - web - %date [%thread] %-5level %logger{36} - %message%n - - - - - - - - ERROR - - email-smtp.us-east-1.amazonaws.com - AKIAJI6XLSOAQX3IW6HQ - AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED - true - hanriseldon@gmail.com - info@applieddatalabs.com - TESTING: %logger{20} - %m - - web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n - - - 1000 - - - - - - - - - - - @@ -53,8 +15,6 @@ - - \ No newline at end of file diff --git a/spring-mvc-java/src/main/resources/webSecurityConfig.xml b/spring-mvc-java/src/main/resources/webSecurityConfig.xml deleted file mode 100644 index 5569cc69508a..000000000000 --- a/spring-mvc-java/src/main/resources/webSecurityConfig.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-mvc-xml/src/main/resources/logback.xml b/spring-mvc-xml/src/main/resources/logback.xml index 976d267d7d16..1146dade632e 100644 --- a/spring-mvc-xml/src/main/resources/logback.xml +++ b/spring-mvc-xml/src/main/resources/logback.xml @@ -1,7 +1,5 @@ - - web - %date [%thread] %-5level %logger{36} - %message%n @@ -9,42 +7,6 @@ - - /var/log/launchpad/launchpad_web.log - - web - %date [%thread] %-5level %logger{36} - %message%n - - - - - - - - ERROR - - email-smtp.us-east-1.amazonaws.com - AKIAJI6XLSOAQX3IW6HQ - AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED - true - hanriseldon@gmail.com - info@applieddatalabs.com - TESTING: %logger{20} - %m - - web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n - - - 1000 - - - - - - - - - - - @@ -53,8 +15,6 @@ - - \ No newline at end of file diff --git a/spring-mvc/.classpath b/spring-mvc/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-mvc/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-mvc/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-mvc/.gitignore b/spring-mvc/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc/.project b/spring-mvc/.project new file mode 100644 index 000000000000..90b8ccd78f8f --- /dev/null +++ b/spring-mvc/.project @@ -0,0 +1,60 @@ + + + spring-mvc + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-mvc/.settings/.jsdtscope b/spring-mvc/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-mvc/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-mvc/.settings/org.eclipse.jdt.core.prefs b/spring-mvc/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..0924ed68cff2 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,91 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-mvc/.settings/org.eclipse.jdt.ui.prefs b/spring-mvc/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-mvc/.settings/org.eclipse.m2e.core.prefs b/spring-mvc/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs b/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-mvc/.settings/org.eclipse.wst.common.component b/spring-mvc/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..9784ac36ee68 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-mvc/.settings/org.eclipse.wst.validation.prefs b/spring-mvc/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-mvc/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-mvc/.springBeans b/spring-mvc/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-mvc/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-mvc/README.md b/spring-mvc/README.md new file mode 100644 index 000000000000..1abc096086ed --- /dev/null +++ b/spring-mvc/README.md @@ -0,0 +1,3 @@ +[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) +========= + diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml new file mode 100644 index 000000000000..bb983b43e6f0 --- /dev/null +++ b/spring-mvc/pom.xml @@ -0,0 +1,142 @@ + + 4.0.0 + org.baeldung + spring-mvc-java + 0.1-SNAPSHOT + + spring-mvc-java + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..2758a707e6bc --- /dev/null +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java new file mode 100644 index 000000000000..ad03a4ac2f78 --- /dev/null +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java @@ -0,0 +1,21 @@ +package org.baeldung.spring.web.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class FooController { + + public FooController() { + super(); + } + + // API + + @RequestMapping(value = "/foos") + public String getFoos() { + System.out.println("simplePattern method was called"); + return "someResult"; + + } +} diff --git a/spring-mvc/src/main/resources/logback.xml b/spring-mvc/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-mvc/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-mvc/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp b/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-mvc/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..ba2bb591ed01 --- /dev/null +++ b/spring-mvc/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + + \ No newline at end of file diff --git a/spring-mvc/src/test/resources/.gitignore b/spring-mvc/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-mvc/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/resources/logback.xml b/spring-security-basic-auth/src/main/resources/logback.xml index 976d267d7d16..1146dade632e 100644 --- a/spring-security-basic-auth/src/main/resources/logback.xml +++ b/spring-security-basic-auth/src/main/resources/logback.xml @@ -1,7 +1,5 @@ - - web - %date [%thread] %-5level %logger{36} - %message%n @@ -9,42 +7,6 @@ - - /var/log/launchpad/launchpad_web.log - - web - %date [%thread] %-5level %logger{36} - %message%n - - - - - - - - ERROR - - email-smtp.us-east-1.amazonaws.com - AKIAJI6XLSOAQX3IW6HQ - AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED - true - hanriseldon@gmail.com - info@applieddatalabs.com - TESTING: %logger{20} - %m - - web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n - - - 1000 - - - - - - - - - - - @@ -53,8 +15,6 @@ - - \ No newline at end of file diff --git a/spring-security-login/src/main/resources/logback.xml b/spring-security-login/src/main/resources/logback.xml index 976d267d7d16..1146dade632e 100644 --- a/spring-security-login/src/main/resources/logback.xml +++ b/spring-security-login/src/main/resources/logback.xml @@ -1,7 +1,5 @@ - - web - %date [%thread] %-5level %logger{36} - %message%n @@ -9,42 +7,6 @@ - - /var/log/launchpad/launchpad_web.log - - web - %date [%thread] %-5level %logger{36} - %message%n - - - - - - - - ERROR - - email-smtp.us-east-1.amazonaws.com - AKIAJI6XLSOAQX3IW6HQ - AuSWMdcNObKqGGT550SR/6vDrgh50vxgFrqZHwR2tTED - true - hanriseldon@gmail.com - info@applieddatalabs.com - TESTING: %logger{20} - %m - - web - |${launchpad.origin}| %date [%thread] %-5level %logger{36} - %message%n - - - 1000 - - - - - - - - - - - @@ -53,8 +15,6 @@ - - \ No newline at end of file From 55a545749ae62a44eb487297acc8eb8ffb2f1450 Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 15 May 2013 18:09:36 +0300 Subject: [PATCH 045/206] minor fixes --- spring-mvc/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml index bb983b43e6f0..3700a428ddb4 100644 --- a/spring-mvc/pom.xml +++ b/spring-mvc/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-mvc-java + spring-mvc 0.1-SNAPSHOT - spring-mvc-java + spring-mvc war From b30b2ffc1e9fe81af11c8f783493fd28ebb9bbcd Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 15 May 2013 18:24:42 +0300 Subject: [PATCH 046/206] minor mapping work --- .../spring/web/config/ClientWebConfig.java | 39 ------------------- .../baeldung/spring/web/config/MvcConfig.java | 16 ++++++++ .../spring/web/controller/FooController.java | 2 +- 3 files changed, 17 insertions(+), 40 deletions(-) delete mode 100644 spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java create mode 100644 spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java deleted file mode 100644 index 2758a707e6bc..000000000000 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.baeldung.spring.web.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.ViewResolver; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.servlet.view.JstlView; - -@EnableWebMvc -@Configuration -public class ClientWebConfig extends WebMvcConfigurerAdapter { - - public ClientWebConfig() { - super(); - } - - // API - - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); - - registry.addViewController("/sample.html"); - } - - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); - - return bean; - } -} \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java new file mode 100644 index 000000000000..093a785b48be --- /dev/null +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +@EnableWebMvc +@Configuration +@ComponentScan({ "org.baeldung.spring.web.controller" }) +public class MvcConfig { + + public MvcConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java index ad03a4ac2f78..a2628cbbbf28 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java @@ -16,6 +16,6 @@ public FooController() { public String getFoos() { System.out.println("simplePattern method was called"); return "someResult"; - } + } From 4a1370d1dd7984515887c396fda27a854f681205 Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 15 May 2013 18:52:45 +0300 Subject: [PATCH 047/206] minor fixes --- .../spring/web/controller/FooController.java | 18 ++++++++++++++++-- spring-mvc/src/main/webapp/WEB-INF/web.xml | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java index a2628cbbbf28..3698cc24d597 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java @@ -2,6 +2,8 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; @Controller public class FooController { @@ -13,9 +15,21 @@ public FooController() { // API @RequestMapping(value = "/foos") + @ResponseBody public String getFoos() { - System.out.println("simplePattern method was called"); - return "someResult"; + return "Get some Foos"; + } + + @RequestMapping(value = "/foos", method = RequestMethod.POST) + @ResponseBody + public String getFoosPost() { + return "Post some Foos"; + } + + @RequestMapping(value = "/foos", method = RequestMethod.POST, headers = "key=val") + @ResponseBody + public String getFoosWithHeader() { + return "Get some Foos with Header"; } } diff --git a/spring-mvc/src/main/webapp/WEB-INF/web.xml b/spring-mvc/src/main/webapp/WEB-INF/web.xml index ba2bb591ed01..5c163a20ad57 100644 --- a/spring-mvc/src/main/webapp/WEB-INF/web.xml +++ b/spring-mvc/src/main/webapp/WEB-INF/web.xml @@ -36,7 +36,7 @@ - index.html + \ No newline at end of file From b7d6a5377a2f3a823e406fa4bb2aef0fb46120fa Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 15 May 2013 22:39:23 +0300 Subject: [PATCH 048/206] mapping work --- .../baeldung/spring/web/config/MvcConfig.java | 6 +- .../spring/web/controller/BarController.java | 37 ++++++++ .../spring/web/controller/FooController.java | 93 ++++++++++++++----- 3 files changed, 110 insertions(+), 26 deletions(-) create mode 100644 spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java b/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java index 093a785b48be..1325da321df3 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/config/MvcConfig.java @@ -9,8 +9,8 @@ @ComponentScan({ "org.baeldung.spring.web.controller" }) public class MvcConfig { - public MvcConfig() { - super(); - } + public MvcConfig() { + super(); + } } \ No newline at end of file diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java new file mode 100644 index 000000000000..def8ffd11e68 --- /dev/null +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java @@ -0,0 +1,37 @@ +package org.baeldung.spring.web.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class BarController { + + public BarController() { + super(); + } + + // API + + // with @RequestParam + + @RequestMapping(value = "/bars") + @ResponseBody + public String getBarBySimplePathWithRequestParam(@RequestParam("id") final long id) { + return "Get a specific Bar with id=" + id; + } + + @RequestMapping(value = "/bars", params = "id") + @ResponseBody + public String getBarBySimplePathWithExplicitRequestParam(@RequestParam("id") final long id) { + return "Get a specific Bar with id=" + id; + } + + @RequestMapping(value = "/bars", params = { "id", "second" }) + @ResponseBody + public String getBarBySimplePathWithExplicitRequestParams(@RequestParam("id") final long id) { + return "Get a specific Bar with id=" + id; + } + +} diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java index 3698cc24d597..2f86327fc8ce 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java @@ -1,6 +1,7 @@ package org.baeldung.spring.web.controller; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @@ -8,28 +9,74 @@ @Controller public class FooController { - public FooController() { - super(); - } - - // API - - @RequestMapping(value = "/foos") - @ResponseBody - public String getFoos() { - return "Get some Foos"; - } - - @RequestMapping(value = "/foos", method = RequestMethod.POST) - @ResponseBody - public String getFoosPost() { - return "Post some Foos"; - } - - @RequestMapping(value = "/foos", method = RequestMethod.POST, headers = "key=val") - @ResponseBody - public String getFoosWithHeader() { - return "Get some Foos with Header"; - } + public FooController() { + super(); + } + + // API + + // by paths + + @RequestMapping(value = "/foos") + @ResponseBody + public String getFoosBySimplePath() { + return "Simple Get some Foos"; + } + + // @RequestMapping(value = "/foos") + // @ResponseBody + // public String getFoosByAdvancedPath() { + // return "Advanced Get some Foos"; + // } + + // with @PathVariable + + @RequestMapping(value = "/foos/{id}") + @ResponseBody + public String getFoosBySimplePathWithPathVariable(@PathVariable("id") final long id) { + return "Get a specific Foo with id=" + id; + } + + // other HTTP verbs + + @RequestMapping(value = "/foos", method = RequestMethod.POST) + @ResponseBody + public String postFoos() { + return "Post some Foos"; + } + + // with headers + + @RequestMapping(value = "/foos", headers = "key=val") + @ResponseBody + public String getFoosWithHeader() { + return "Get some Foos with Header"; + } + + @RequestMapping(value = "/foos", headers = { "key1=val1", "key2=val2" }) + @ResponseBody + public String getFoosWithHeaders() { + return "Get some Foos with Header"; + } + + // advanced - multiple mappings + + @RequestMapping(value = { "/advanced/bars", "/advanced/foos" }) + @ResponseBody + public String getFoosOrBarsByPath() { + return "Advanced - Get some Foos or Bars"; + } + + @RequestMapping(value = "*") + @ResponseBody + public String getFallback() { + return "Fallback for GET Requests"; + } + + @RequestMapping(value = "*", method = { RequestMethod.GET, RequestMethod.POST }) + @ResponseBody + public String allFallback() { + return "Fallback for All Requests"; + } } From 0f71d7d2b8ea7af8e30ca664cd70ee5300f74d5e Mon Sep 17 00:00:00 2001 From: Eugen Date: Thu, 16 May 2013 17:33:00 +0300 Subject: [PATCH 049/206] minor mapping work --- .../spring/web/controller/BarController.java | 9 +++++++ .../spring/web/controller/FooController.java | 26 ++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java index def8ffd11e68..4c2202791ca1 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/BarController.java @@ -1,6 +1,7 @@ package org.baeldung.spring.web.controller; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @@ -34,4 +35,12 @@ public String getBarBySimplePathWithExplicitRequestParams(@RequestParam("id") fi return "Get a specific Bar with id=" + id; } + // with @PathVariable + + @RequestMapping(value = "/bars/{numericId:[\\d]+}") + @ResponseBody + public String getBarsBySimplePathWithPathVariable(@PathVariable final long numericId) { + return "Get a specific Bar with id=" + numericId; + } + } diff --git a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java index 2f86327fc8ce..32019a4571b7 100644 --- a/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java +++ b/spring-mvc/src/main/java/org/baeldung/spring/web/controller/FooController.java @@ -23,20 +23,20 @@ public String getFoosBySimplePath() { return "Simple Get some Foos"; } - // @RequestMapping(value = "/foos") - // @ResponseBody - // public String getFoosByAdvancedPath() { - // return "Advanced Get some Foos"; - // } - // with @PathVariable @RequestMapping(value = "/foos/{id}") @ResponseBody - public String getFoosBySimplePathWithPathVariable(@PathVariable("id") final long id) { + public String getFoosBySimplePathWithPathVariable(@PathVariable final long id) { return "Get a specific Foo with id=" + id; } + @RequestMapping(value = "/foos/{fooid}/bar/{barid}") + @ResponseBody + public String getFoosBySimplePathWithPathVariables(@PathVariable final long fooid, @PathVariable final long barid) { + return "Get a specific Bar with id=" + barid + " from a Foo with id=" + fooid; + } + // other HTTP verbs @RequestMapping(value = "/foos", method = RequestMethod.POST) @@ -59,6 +59,12 @@ public String getFoosWithHeaders() { return "Get some Foos with Header"; } + @RequestMapping(value = "/foos", produces = { "application/json", "application/xml" }) + @ResponseBody + public String getFoosAsJsonFromREST() { + return "Get some Foos with Header Exact"; + } + // advanced - multiple mappings @RequestMapping(value = { "/advanced/bars", "/advanced/foos" }) @@ -79,4 +85,10 @@ public String allFallback() { return "Fallback for All Requests"; } + @RequestMapping(value = "/foos/multiple", method = { RequestMethod.PUT, RequestMethod.POST }) + @ResponseBody + public String putAndPostFoos() { + return "Advanced - PUT and POST within single method"; + } + } From bccc8fc690c49a8791b2e0b5079c618edb31ad4d Mon Sep 17 00:00:00 2001 From: Eugen Date: Fri, 17 May 2013 12:12:34 +0300 Subject: [PATCH 050/206] minor persistence work --- spring-hibernate4/.classpath | 7 +- .../org.eclipse.wst.common.component | 1 + spring-hibernate4/pom.xml | 317 +++++++++--------- .../persistence/service/FooService.java | 2 + .../FooServicePersistenceIntegrationTest.java | 13 + 5 files changed, 184 insertions(+), 156 deletions(-) create mode 100644 spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java diff --git a/spring-hibernate4/.classpath b/spring-hibernate4/.classpath index 593395a46e93..10115292f412 100644 --- a/spring-hibernate4/.classpath +++ b/spring-hibernate4/.classpath @@ -16,6 +16,12 @@ + + + + + + @@ -24,7 +30,6 @@ - diff --git a/spring-hibernate4/.settings/org.eclipse.wst.common.component b/spring-hibernate4/.settings/org.eclipse.wst.common.component index 619260207900..59f6da9f9587 100644 --- a/spring-hibernate4/.settings/org.eclipse.wst.common.component +++ b/spring-hibernate4/.settings/org.eclipse.wst.common.component @@ -4,6 +4,7 @@ + diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index c7171e0acdc5..61129e1a4739 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -1,157 +1,164 @@ - - 4.0.0 - org.baeldung - spring-hibernate4 - 0.1-SNAPSHOT - - spring-hibernate4 - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-orm - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - - - - org.hibernate - hibernate-core - 4.2.1.Final - - - org.javassist - javassist - 3.17.1-GA - - - mysql - mysql-connector-java - 5.1.25 - runtime - - - - - - com.google.guava - guava - 14.0.1 - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-hibernate4 - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.2.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.4 - - 1.8.0 - 1.8.9 - - + + 4.0.0 + org.baeldung + spring-hibernate4 + 0.1-SNAPSHOT + + spring-hibernate4 + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + 4.2.1.Final + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + 5.1.25 + runtime + + + + + + com.google.guava + guava + 14.0.1 + + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-hibernate4 + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + \ No newline at end of file diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java index cda31a0e86ef..896e2795ffe8 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -3,8 +3,10 @@ import org.baeldung.spring.persistence.dao.IFooDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service +@Transactional public class FooService { @Autowired diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java new file mode 100644 index 000000000000..5d23f5354cb2 --- /dev/null +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -0,0 +1,13 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.config.PersistenceConfig; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) +public class FooServicePersistenceIntegrationTest { + // +} From 852c5b96de233efbad9341537c9b8ce9ff6c71d9 Mon Sep 17 00:00:00 2001 From: Eugen Date: Fri, 17 May 2013 12:22:20 +0300 Subject: [PATCH 051/206] service work --- .../.settings/org.eclipse.jdt.core.prefs | 83 +++++++++++++++++++ .../spring/persistence/dao/FooDao.java | 52 ++++++++++++ .../spring/persistence/dao/IFooDao.java | 18 +++- .../persistence/service/FooService.java | 7 +- .../FooServicePersistenceIntegrationTest.java | 20 ++++- 5 files changed, 177 insertions(+), 3 deletions(-) diff --git a/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs index 62492222ad2e..a931b331929d 100644 --- a/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs +++ b/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,9 @@ eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve @@ -6,7 +11,85 @@ org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java index a59bb30f48b1..b7878abd81d7 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -1,14 +1,66 @@ package org.baeldung.spring.persistence.dao; +import java.util.List; + +import org.baeldung.spring.persistence.model.Foo; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import com.google.common.base.Preconditions; + @Repository public class FooDao implements IFooDao { + @Autowired + private SessionFactory sessionFactory; + public FooDao() { super(); } // API + @Override + public Foo findOne(final Long id) { + Preconditions.checkArgument(id != null); + return (Foo) getCurrentSession().get(Foo.class, id); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + return getCurrentSession().createQuery("from " + Foo.class.getName()).list(); + } + + @Override + public void create(final Foo entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().persist(entity); + } + + @Override + public void update(final Foo entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().merge(entity); + } + + @Override + public void delete(final Foo entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().delete(entity); + } + + @Override + public void deleteById(final Long entityId) { + final Foo entity = findOne(entityId); + Preconditions.checkState(entity != null); + delete(entity); + } + + protected final Session getCurrentSession() { + return sessionFactory.getCurrentSession(); + } + } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index 91d44f5f6bfb..5536c9e7d740 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -1,5 +1,21 @@ package org.baeldung.spring.persistence.dao; +import java.util.List; + +import org.baeldung.spring.persistence.model.Foo; + public interface IFooDao { - // + + Foo findOne(Long id); + + List findAll(); + + void create(Foo entity); + + void update(Foo entity); + + void delete(Foo entity); + + void deleteById(Long entityId); + } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java index 896e2795ffe8..1d3b5c4a0201 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -1,6 +1,7 @@ package org.baeldung.spring.persistence.service; import org.baeldung.spring.persistence.dao.IFooDao; +import org.baeldung.spring.persistence.model.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -10,7 +11,7 @@ public class FooService { @Autowired - private IFooDao fooDao; + private IFooDao dao; public FooService() { super(); @@ -18,4 +19,8 @@ public FooService() { // API + public void create(final Foo entity) { + dao.create(entity); + } + } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 5d23f5354cb2..eaa72fc6efa2 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -1,7 +1,10 @@ package org.baeldung.spring.persistence.service; import org.baeldung.spring.persistence.config.PersistenceConfig; +import org.baeldung.spring.persistence.model.Foo; +import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -9,5 +12,20 @@ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) public class FooServicePersistenceIntegrationTest { - // + + @Autowired + private FooService service; + + // tests + + @Test + public final void whenContextIsBootstrapped_thenNoExceptions() { + // + } + + @Test + public final void whenEntityisCreated_thenNoExceptions() { + service.create(new Foo()); + } + } From c5ba7852461067692ee6b68f7a4bfd7844e93e53 Mon Sep 17 00:00:00 2001 From: Eugen Date: Fri, 17 May 2013 12:37:04 +0300 Subject: [PATCH 052/206] persistence work --- spring-hibernate4/pom.xml | 8 +++ .../spring/persistence/model/Foo.java | 50 +++++++++++++++++++ .../FooServicePersistenceIntegrationTest.java | 4 +- 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index 61129e1a4739..e966579fad2f 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -56,6 +56,14 @@ + + + org.apache.commons + commons-lang3 + 3.1 + test + + org.springframework spring-test diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java index 8842c26d95b1..8b03df39e7a3 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -1,5 +1,6 @@ package org.baeldung.spring.persistence.model; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -12,10 +13,19 @@ public class Foo { @GeneratedValue(strategy = GenerationType.AUTO) private long id; + @Column(nullable = false) + private String name; + public Foo() { super(); } + public Foo(final String name) { + super(); + + this.name = name; + } + // API public long getId() { @@ -26,6 +36,46 @@ public void setId(final long id) { this.id = id; } + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + // + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index eaa72fc6efa2..cabb94c2f0cb 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -1,5 +1,7 @@ package org.baeldung.spring.persistence.service; +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; + import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; import org.junit.Test; @@ -25,7 +27,7 @@ public final void whenContextIsBootstrapped_thenNoExceptions() { @Test public final void whenEntityisCreated_thenNoExceptions() { - service.create(new Foo()); + service.create(new Foo(randomAlphabetic(6))); } } From f82c1030464e3c1a8f54bfc6d06db7b9e72e7027 Mon Sep 17 00:00:00 2001 From: Eugen Date: Fri, 17 May 2013 18:54:16 +0300 Subject: [PATCH 053/206] persistence work --- .../service/FooServicePersistenceIntegrationTest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index cabb94c2f0cb..fae40cdad075 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -26,8 +26,14 @@ public final void whenContextIsBootstrapped_thenNoExceptions() { } @Test - public final void whenEntityisCreated_thenNoExceptions() { + public final void whenEntityIsCreated_thenNoExceptions() { service.create(new Foo(randomAlphabetic(6))); } + // @Test(expected = DataIntegrityViolationException.class) + @Test + public final void whenInvalidEntityIsCreated_thenDataException() { + service.create(new Foo()); + } + } From 993fc6bade9e6c19d5682d8767ad714a9a8b7a88 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 11:45:55 +0300 Subject: [PATCH 054/206] eclipse work --- spring-hibernate3/.project | 2 +- .../.settings/org.eclipse.wst.common.component | 6 +++--- spring-hibernate3/pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-hibernate3/.project b/spring-hibernate3/.project index 8aa9e7ad5822..fba218889745 100644 --- a/spring-hibernate3/.project +++ b/spring-hibernate3/.project @@ -1,6 +1,6 @@ - spring-hibernate3-dao + spring-hibernate3 diff --git a/spring-hibernate3/.settings/org.eclipse.wst.common.component b/spring-hibernate3/.settings/org.eclipse.wst.common.component index 557fa1bf21e8..14b1679703ce 100644 --- a/spring-hibernate3/.settings/org.eclipse.wst.common.component +++ b/spring-hibernate3/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-hibernate3/pom.xml b/spring-hibernate3/pom.xml index d2adea1f25ce..2fc47dbcadf1 100644 --- a/spring-hibernate3/pom.xml +++ b/spring-hibernate3/pom.xml @@ -1,10 +1,10 @@ 4.0.0 org.baeldung - spring-hibernate3-dao + spring-hibernate3 0.1-SNAPSHOT - spring-hibernate3-dao + spring-hibernate3 war @@ -86,7 +86,7 @@ - spring-hibernate3-dao + spring-hibernate3 src/main/resources From 09eaa5b8e146e676d84228e48076ea554c8ef431 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 11:49:19 +0300 Subject: [PATCH 055/206] minor cleanup --- spring-hibernate4/.classpath | 3 ++- spring-hibernate4/.project | 11 ----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/spring-hibernate4/.classpath b/spring-hibernate4/.classpath index 10115292f412..ca257cf1f962 100644 --- a/spring-hibernate4/.classpath +++ b/spring-hibernate4/.classpath @@ -22,7 +22,7 @@ - + @@ -30,6 +30,7 @@ + diff --git a/spring-hibernate4/.project b/spring-hibernate4/.project index 233d73c017ac..40591b21b2fc 100644 --- a/spring-hibernate4/.project +++ b/spring-hibernate4/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder From 2b7304c32da6d44ca99e8631a2481e0a3d9fa9df Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 13:07:16 +0300 Subject: [PATCH 056/206] persistence work --- spring-hibernate4/pom.xml | 347 +++++++++--------- .../spring/persistence/model/Foo.java | 2 + .../FooServicePersistenceIntegrationTest.java | 22 +- 3 files changed, 199 insertions(+), 172 deletions(-) diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index e966579fad2f..254d9e111826 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -1,172 +1,179 @@ - - 4.0.0 - org.baeldung - spring-hibernate4 - 0.1-SNAPSHOT - - spring-hibernate4 - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-orm - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - - - - org.hibernate - hibernate-core - 4.2.1.Final - - - org.javassist - javassist - 3.17.1-GA - - - mysql - mysql-connector-java - 5.1.25 - runtime - - - - - - com.google.guava - guava - 14.0.1 - - - - - - org.apache.commons - commons-lang3 - 3.1 - test - - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-hibernate4 - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.2.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.4 - - 1.8.0 - 1.8.9 - - + + 4.0.0 + org.baeldung + spring-hibernate4 + 0.1-SNAPSHOT + + spring-hibernate4 + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + 4.2.1.Final + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + 5.1.25 + runtime + + + + + + org.hibernate + hibernate-validator + 5.0.1.Final + + + + + + com.google.guava + guava + 14.0.1 + + + + + + org.apache.commons + commons-lang3 + 3.1 + test + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-hibernate4 + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + \ No newline at end of file diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java index 8b03df39e7a3..2bf8f7f00869 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -5,6 +5,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.validation.constraints.NotNull; @Entity public class Foo { @@ -14,6 +15,7 @@ public class Foo { private long id; @Column(nullable = false) + @NotNull private String name; public Foo() { diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index fae40cdad075..3020250f6d03 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -7,6 +7,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -30,10 +32,26 @@ public final void whenEntityIsCreated_thenNoExceptions() { service.create(new Foo(randomAlphabetic(6))); } - // @Test(expected = DataIntegrityViolationException.class) - @Test + @Test(expected = DataIntegrityViolationException.class) public final void whenInvalidEntityIsCreated_thenDataException() { service.create(new Foo()); } + @Test(expected = DataIntegrityViolationException.class) + public final void whenEntityWithLongNameIsCreated_thenDataException() { + service.create(new Foo(randomAlphabetic(2048))); + } + + @Test(expected = InvalidDataAccessApiUsageException.class) + public final void whenSameEntityIsCreatedTwice_thenDataException() { + final Foo entity = new Foo(randomAlphabetic(8)); + service.create(entity); + service.create(entity); + } + + @Test + public final void temp_whenInvalidEntityIsCreated_thenDataException() { + service.create(new Foo(randomAlphabetic(2048))); + } + } From 676bc5d1601f3e657fa417b66c01f4f67da9ada1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 13:08:43 +0300 Subject: [PATCH 057/206] new spring jpa tutorial --- spring-jpa/.classpath | 37 ++++ spring-jpa/.gitignore | 13 ++ spring-jpa/.project | 49 +++++ spring-jpa/.settings/.jsdtscope | 12 ++ .../.settings/org.eclipse.jdt.core.prefs | 95 ++++++++++ spring-jpa/.settings/org.eclipse.jdt.ui.prefs | 55 ++++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 11 ++ ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-jpa/.springBeans | 14 ++ spring-jpa/README.md | 3 + spring-jpa/pom.xml | 179 ++++++++++++++++++ .../config/HibernateXmlConfig.java | 18 ++ .../persistence/config/PersistenceConfig.java | 79 ++++++++ .../spring/persistence/dao/FooDao.java | 66 +++++++ .../spring/persistence/dao/IFooDao.java | 21 ++ .../spring/persistence/model/Foo.java | 83 ++++++++ .../persistence/service/FooService.java | 26 +++ .../src/main/resources/hibernate4Config.xml | 35 ++++ spring-jpa/src/main/resources/logback.xml | 20 ++ .../resources/persistence-mysql.properties | 10 + .../src/main/resources/webSecurityConfig.xml | 36 ++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + spring-jpa/src/main/webapp/WEB-INF/web.xml | 17 ++ .../FooServicePersistenceIntegrationTest.java | 57 ++++++ spring-jpa/src/test/resources/.gitignore | 13 ++ 32 files changed, 992 insertions(+) create mode 100644 spring-jpa/.classpath create mode 100644 spring-jpa/.gitignore create mode 100644 spring-jpa/.project create mode 100644 spring-jpa/.settings/.jsdtscope create mode 100644 spring-jpa/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-jpa/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-jpa/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-jpa/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-jpa/.settings/org.eclipse.wst.common.component create mode 100644 spring-jpa/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-jpa/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-jpa/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-jpa/.springBeans create mode 100644 spring-jpa/README.md create mode 100644 spring-jpa/pom.xml create mode 100644 spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java create mode 100644 spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java create mode 100644 spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java create mode 100644 spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java create mode 100644 spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java create mode 100644 spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java create mode 100644 spring-jpa/src/main/resources/hibernate4Config.xml create mode 100644 spring-jpa/src/main/resources/logback.xml create mode 100644 spring-jpa/src/main/resources/persistence-mysql.properties create mode 100644 spring-jpa/src/main/resources/webSecurityConfig.xml create mode 100644 spring-jpa/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-jpa/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-jpa/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java create mode 100644 spring-jpa/src/test/resources/.gitignore diff --git a/spring-jpa/.classpath b/spring-jpa/.classpath new file mode 100644 index 000000000000..ca257cf1f962 --- /dev/null +++ b/spring-jpa/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-jpa/.gitignore b/spring-jpa/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-jpa/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-jpa/.project b/spring-jpa/.project new file mode 100644 index 000000000000..3fe887cb4569 --- /dev/null +++ b/spring-jpa/.project @@ -0,0 +1,49 @@ + + + spring-jpa + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-jpa/.settings/.jsdtscope b/spring-jpa/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-jpa/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-jpa/.settings/org.eclipse.jdt.core.prefs b/spring-jpa/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..a931b331929d --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-jpa/.settings/org.eclipse.jdt.ui.prefs b/spring-jpa/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-jpa/.settings/org.eclipse.m2e.core.prefs b/spring-jpa/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-jpa/.settings/org.eclipse.m2e.wtp.prefs b/spring-jpa/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-jpa/.settings/org.eclipse.wst.common.component b/spring-jpa/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..68573b98202a --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.wst.common.component @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/spring-jpa/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-jpa/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-jpa/.settings/org.eclipse.wst.validation.prefs b/spring-jpa/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-jpa/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-jpa/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-jpa/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-jpa/.springBeans b/spring-jpa/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-jpa/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-jpa/README.md b/spring-jpa/README.md new file mode 100644 index 000000000000..12eb079c88b1 --- /dev/null +++ b/spring-jpa/README.md @@ -0,0 +1,3 @@ +Hibernate 4 with Spring +========= + diff --git a/spring-jpa/pom.xml b/spring-jpa/pom.xml new file mode 100644 index 000000000000..1485739f68ec --- /dev/null +++ b/spring-jpa/pom.xml @@ -0,0 +1,179 @@ + + 4.0.0 + org.baeldung + spring-jpa + 0.1-SNAPSHOT + + spring-jpa + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + 4.2.1.Final + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + 5.1.25 + runtime + + + + + + org.hibernate + hibernate-validator + 5.0.1.Final + + + + + + com.google.guava + guava + 14.0.1 + + + + + + org.apache.commons + commons-lang3 + 3.1 + test + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-jpa + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.2.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.4 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java new file mode 100644 index 000000000000..51fbcd27c16d --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java @@ -0,0 +1,18 @@ +package org.baeldung.spring.persistence.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ImportResource({ "classpath:hibernate4Config.xml" }) +public class HibernateXmlConfig { + + public HibernateXmlConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java new file mode 100644 index 000000000000..3157c92e9924 --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -0,0 +1,79 @@ +package org.baeldung.spring.persistence.config; + +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.google.common.base.Preconditions; + +@Configuration +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +public class PersistenceConfig { + + @Autowired + private Environment env; + + public PersistenceConfig() { + super(); + } + + @Bean + public LocalSessionFactoryBean sessionFactory() { + final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(sessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java new file mode 100644 index 000000000000..b7878abd81d7 --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -0,0 +1,66 @@ +package org.baeldung.spring.persistence.dao; + +import java.util.List; + +import org.baeldung.spring.persistence.model.Foo; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +import com.google.common.base.Preconditions; + +@Repository +public class FooDao implements IFooDao { + + @Autowired + private SessionFactory sessionFactory; + + public FooDao() { + super(); + } + + // API + + @Override + public Foo findOne(final Long id) { + Preconditions.checkArgument(id != null); + return (Foo) getCurrentSession().get(Foo.class, id); + } + + @Override + @SuppressWarnings("unchecked") + public List findAll() { + return getCurrentSession().createQuery("from " + Foo.class.getName()).list(); + } + + @Override + public void create(final Foo entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().persist(entity); + } + + @Override + public void update(final Foo entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().merge(entity); + } + + @Override + public void delete(final Foo entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().delete(entity); + } + + @Override + public void deleteById(final Long entityId) { + final Foo entity = findOne(entityId); + Preconditions.checkState(entity != null); + delete(entity); + } + + protected final Session getCurrentSession() { + return sessionFactory.getCurrentSession(); + } + +} diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..5536c9e7d740 --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -0,0 +1,21 @@ +package org.baeldung.spring.persistence.dao; + +import java.util.List; + +import org.baeldung.spring.persistence.model.Foo; + +public interface IFooDao { + + Foo findOne(Long id); + + List findAll(); + + void create(Foo entity); + + void update(Foo entity); + + void delete(Foo entity); + + void deleteById(Long entityId); + +} diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java new file mode 100644 index 000000000000..2bf8f7f00869 --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -0,0 +1,83 @@ +package org.baeldung.spring.persistence.model; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.validation.constraints.NotNull; + +@Entity +public class Foo { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(nullable = false) + @NotNull + private String name; + + public Foo() { + super(); + } + + public Foo(final String name) { + super(); + + this.name = name; + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + // + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + +} diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java new file mode 100644 index 000000000000..1d3b5c4a0201 --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -0,0 +1,26 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.IFooDao; +import org.baeldung.spring.persistence.model.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Transactional +public class FooService { + + @Autowired + private IFooDao dao; + + public FooService() { + super(); + } + + // API + + public void create(final Foo entity) { + dao.create(entity); + } + +} diff --git a/spring-jpa/src/main/resources/hibernate4Config.xml b/spring-jpa/src/main/resources/hibernate4Config.xml new file mode 100644 index 000000000000..f35de2a4c5db --- /dev/null +++ b/spring-jpa/src/main/resources/hibernate4Config.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + ${hibernate.hbm2ddl.auto} + ${hibernate.dialect} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-jpa/src/main/resources/logback.xml b/spring-jpa/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-jpa/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-jpa/src/main/resources/persistence-mysql.properties b/spring-jpa/src/main/resources/persistence-mysql.properties new file mode 100644 index 000000000000..a1ff997616ae --- /dev/null +++ b/spring-jpa/src/main/resources/persistence-mysql.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.user=tutorialuser +jdbc.pass=tutorialmy5ql + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=false +hibernate.hbm2ddl.auto=create-drop diff --git a/spring-jpa/src/main/resources/webSecurityConfig.xml b/spring-jpa/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..5569cc69508a --- /dev/null +++ b/spring-jpa/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-jpa/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-jpa/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-jpa/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-jpa/src/main/webapp/WEB-INF/view/sample.jsp b/spring-jpa/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-jpa/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-jpa/src/main/webapp/WEB-INF/web.xml b/spring-jpa/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..e0de9aefd45a --- /dev/null +++ b/spring-jpa/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,17 @@ + + + Spring MVC Application + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.persistence.config + + + org.springframework.web.context.ContextLoaderListener + + \ No newline at end of file diff --git a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java new file mode 100644 index 000000000000..3020250f6d03 --- /dev/null +++ b/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -0,0 +1,57 @@ +package org.baeldung.spring.persistence.service; + +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; + +import org.baeldung.spring.persistence.config.PersistenceConfig; +import org.baeldung.spring.persistence.model.Foo; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.dao.InvalidDataAccessApiUsageException; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) +public class FooServicePersistenceIntegrationTest { + + @Autowired + private FooService service; + + // tests + + @Test + public final void whenContextIsBootstrapped_thenNoExceptions() { + // + } + + @Test + public final void whenEntityIsCreated_thenNoExceptions() { + service.create(new Foo(randomAlphabetic(6))); + } + + @Test(expected = DataIntegrityViolationException.class) + public final void whenInvalidEntityIsCreated_thenDataException() { + service.create(new Foo()); + } + + @Test(expected = DataIntegrityViolationException.class) + public final void whenEntityWithLongNameIsCreated_thenDataException() { + service.create(new Foo(randomAlphabetic(2048))); + } + + @Test(expected = InvalidDataAccessApiUsageException.class) + public final void whenSameEntityIsCreatedTwice_thenDataException() { + final Foo entity = new Foo(randomAlphabetic(8)); + service.create(entity); + service.create(entity); + } + + @Test + public final void temp_whenInvalidEntityIsCreated_thenDataException() { + service.create(new Foo(randomAlphabetic(2048))); + } + +} diff --git a/spring-jpa/src/test/resources/.gitignore b/spring-jpa/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-jpa/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From dbd5616f5a7f2dca7d835a9090d713c720c91ab0 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 13:18:34 +0300 Subject: [PATCH 058/206] jpa work --- spring-jpa/pom.xml | 7 +++- .../persistence/config/PersistenceConfig.java | 37 ++++++++++++------- .../spring/persistence/dao/FooDao.java | 30 ++++++--------- .../spring/persistence/dao/IFooDao.java | 4 +- .../spring/persistence/model/Foo.java | 2 - .../FooServicePersistenceIntegrationTest.java | 2 + 6 files changed, 46 insertions(+), 36 deletions(-) diff --git a/spring-jpa/pom.xml b/spring-jpa/pom.xml index 1485739f68ec..d7c3bc3dac23 100644 --- a/spring-jpa/pom.xml +++ b/spring-jpa/pom.xml @@ -34,6 +34,11 @@ hibernate-core 4.2.1.Final + + org.hibernate + hibernate-entitymanager + 4.2.1.Final + org.javassist javassist @@ -47,7 +52,7 @@ - + org.hibernate hibernate-validator diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index 3157c92e9924..3532afe22934 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -12,8 +12,11 @@ import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.hibernate4.HibernateTransactionManager; -import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.JpaVendorAdapter; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.google.common.base.Preconditions; @@ -32,13 +35,20 @@ public PersistenceConfig() { } @Bean - public LocalSessionFactoryBean sessionFactory() { - final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); - sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); - sessionFactory.setHibernateProperties(hibernateProperties()); + public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { + final LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); + factoryBean.setDataSource(restDataSource()); + factoryBean.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); - return sessionFactory; + final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter() { + { + // JPA properties ... + } + }; + factoryBean.setJpaVendorAdapter(vendorAdapter); + factoryBean.setJpaProperties(additionalProperties()); + + return factoryBean; } @Bean @@ -53,11 +63,11 @@ public DataSource restDataSource() { } @Bean - public HibernateTransactionManager transactionManager() { - final HibernateTransactionManager txManager = new HibernateTransactionManager(); - txManager.setSessionFactory(sessionFactory().getObject()); + public PlatformTransactionManager transactionManager() { + final JpaTransactionManager transactionManager = new JpaTransactionManager(); + transactionManager.setEntityManagerFactory(entityManagerFactoryBean().getObject()); - return txManager; + return transactionManager; } @Bean @@ -65,7 +75,7 @@ public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { return new PersistenceExceptionTranslationPostProcessor(); } - final Properties hibernateProperties() { + final Properties additionalProperties() { return new Properties() { { setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); @@ -76,4 +86,5 @@ final Properties hibernateProperties() { } }; } + } \ No newline at end of file diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java index b7878abd81d7..8f9b5003daa4 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -2,10 +2,10 @@ import java.util.List; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + import org.baeldung.spring.persistence.model.Foo; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.google.common.base.Preconditions; @@ -13,8 +13,8 @@ @Repository public class FooDao implements IFooDao { - @Autowired - private SessionFactory sessionFactory; + @PersistenceContext + private EntityManager entityManager; public FooDao() { super(); @@ -23,44 +23,38 @@ public FooDao() { // API @Override - public Foo findOne(final Long id) { - Preconditions.checkArgument(id != null); - return (Foo) getCurrentSession().get(Foo.class, id); + public Foo findOne(final long id) { + return entityManager.find(Foo.class, id); } @Override @SuppressWarnings("unchecked") public List findAll() { - return getCurrentSession().createQuery("from " + Foo.class.getName()).list(); + return entityManager.createQuery("from " + Foo.class.getName()).getResultList(); } @Override public void create(final Foo entity) { Preconditions.checkNotNull(entity); - getCurrentSession().persist(entity); + entityManager.persist(entity); } @Override public void update(final Foo entity) { Preconditions.checkNotNull(entity); - getCurrentSession().merge(entity); + entityManager.merge(entity); } @Override public void delete(final Foo entity) { Preconditions.checkNotNull(entity); - getCurrentSession().delete(entity); + entityManager.remove(entity); } @Override - public void deleteById(final Long entityId) { + public void deleteById(final long entityId) { final Foo entity = findOne(entityId); - Preconditions.checkState(entity != null); delete(entity); } - protected final Session getCurrentSession() { - return sessionFactory.getCurrentSession(); - } - } diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index 5536c9e7d740..a5c22d1e419e 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -6,7 +6,7 @@ public interface IFooDao { - Foo findOne(Long id); + Foo findOne(long id); List findAll(); @@ -16,6 +16,6 @@ public interface IFooDao { void delete(Foo entity); - void deleteById(Long entityId); + void deleteById(long entityId); } diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java index 2bf8f7f00869..8b03df39e7a3 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -5,7 +5,6 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; -import javax.validation.constraints.NotNull; @Entity public class Foo { @@ -15,7 +14,6 @@ public class Foo { private long id; @Column(nullable = false) - @NotNull private String name; public Foo() { diff --git a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 3020250f6d03..576f536adc80 100644 --- a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,6 +4,7 @@ import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -50,6 +51,7 @@ public final void whenSameEntityIsCreatedTwice_thenDataException() { } @Test + @Ignore public final void temp_whenInvalidEntityIsCreated_thenDataException() { service.create(new Foo(randomAlphabetic(2048))); } From 71a230ef91dac7ec3a954389ca8001d53814a3e0 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 15:54:43 +0300 Subject: [PATCH 059/206] jpa work --- .../spring/persistence/config/PersistenceConfig.java | 6 +----- .../java/org/baeldung/spring/persistence/dao/FooDao.java | 4 ++-- .../java/org/baeldung/spring/persistence/dao/IFooDao.java | 2 +- .../service/FooServicePersistenceIntegrationTest.java | 4 +--- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index 3532afe22934..52ee113e17aa 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -40,11 +40,7 @@ public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { factoryBean.setDataSource(restDataSource()); factoryBean.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); - final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter() { - { - // JPA properties ... - } - }; + final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); factoryBean.setJpaVendorAdapter(vendorAdapter); factoryBean.setJpaProperties(additionalProperties()); diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java index 8f9b5003daa4..f970ade71f70 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -40,9 +40,9 @@ public void create(final Foo entity) { } @Override - public void update(final Foo entity) { + public Foo update(final Foo entity) { Preconditions.checkNotNull(entity); - entityManager.merge(entity); + return entityManager.merge(entity); } @Override diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index a5c22d1e419e..201fc3e35187 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -12,7 +12,7 @@ public interface IFooDao { void create(Foo entity); - void update(Foo entity); + Foo update(Foo entity); void delete(Foo entity); diff --git a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 576f536adc80..42dbb45f030c 100644 --- a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,7 +4,6 @@ import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -51,9 +50,8 @@ public final void whenSameEntityIsCreatedTwice_thenDataException() { } @Test - @Ignore public final void temp_whenInvalidEntityIsCreated_thenDataException() { - service.create(new Foo(randomAlphabetic(2048))); + service.create(new Foo()); } } From bcfc7d9aaf5e27924e77a90953c0e6327ffaf288 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 16:03:37 +0300 Subject: [PATCH 060/206] hibernate work --- .../.settings/org.eclipse.jdt.core.prefs | 2 +- .../persistence/dao/AbstractHibernateDao.java | 59 +++++++++++++++++++ .../spring/persistence/dao/FooDao.java | 50 +--------------- .../spring/persistence/dao/IFooDao.java | 10 ++-- .../spring/persistence/model/Foo.java | 6 +- .../FooServicePersistenceIntegrationTest.java | 2 + 6 files changed, 73 insertions(+), 56 deletions(-) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java diff --git a/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs index a931b331929d..c201ee1f7a18 100644 --- a/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs +++ b/spring-hibernate4/.settings/org.eclipse.jdt.core.prefs @@ -42,7 +42,7 @@ org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java new file mode 100644 index 000000000000..4ff95f112688 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java @@ -0,0 +1,59 @@ +package org.baeldung.spring.persistence.dao; + +import java.io.Serializable; +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import com.google.common.base.Preconditions; + +@SuppressWarnings("unchecked") +public abstract class AbstractHibernateDao { + private Class clazz; + + @Autowired + private SessionFactory sessionFactory; + + // API + + protected final void setClazz(final Class clazzToSet) { + clazz = clazzToSet; + } + + public final T findOne(final Long id) { + Preconditions.checkArgument(id != null); + return ((T) getCurrentSession().get(clazz, id)); + } + + public final List findAll() { + return getCurrentSession().createQuery("from " + clazz.getName()).list(); + } + + public final void create(final T entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().persist(entity); + } + + public final T update(final T entity) { + Preconditions.checkNotNull(entity); + return (T) getCurrentSession().merge(entity); + } + + public final void delete(final T entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().delete(entity); + } + + public final void deleteById(final Long entityId) { + final T entity = findOne(entityId); + Preconditions.checkState(entity != null); + delete(entity); + } + + protected final Session getCurrentSession() { + return sessionFactory.getCurrentSession(); + } + +} \ No newline at end of file diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java index b7878abd81d7..1efa61ffb283 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -1,66 +1,22 @@ package org.baeldung.spring.persistence.dao; -import java.util.List; - import org.baeldung.spring.persistence.model.Foo; -import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; -import com.google.common.base.Preconditions; - @Repository -public class FooDao implements IFooDao { +public class FooDao extends AbstractHibernateDao implements IFooDao { @Autowired private SessionFactory sessionFactory; public FooDao() { super(); - } - - // API - - @Override - public Foo findOne(final Long id) { - Preconditions.checkArgument(id != null); - return (Foo) getCurrentSession().get(Foo.class, id); - } - - @Override - @SuppressWarnings("unchecked") - public List findAll() { - return getCurrentSession().createQuery("from " + Foo.class.getName()).list(); - } - @Override - public void create(final Foo entity) { - Preconditions.checkNotNull(entity); - getCurrentSession().persist(entity); + setClazz(Foo.class); } - @Override - public void update(final Foo entity) { - Preconditions.checkNotNull(entity); - getCurrentSession().merge(entity); - } - - @Override - public void delete(final Foo entity) { - Preconditions.checkNotNull(entity); - getCurrentSession().delete(entity); - } - - @Override - public void deleteById(final Long entityId) { - final Foo entity = findOne(entityId); - Preconditions.checkState(entity != null); - delete(entity); - } - - protected final Session getCurrentSession() { - return sessionFactory.getCurrentSession(); - } + // API } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index 5536c9e7d740..6ad12b147cc1 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -6,16 +6,16 @@ public interface IFooDao { - Foo findOne(Long id); + Foo findOne(final Long id); List findAll(); - void create(Foo entity); + void create(final Foo entity); - void update(Foo entity); + Foo update(final Foo entity); - void delete(Foo entity); + void delete(final Foo entity); - void deleteById(Long entityId); + void deleteById(final Long entityId); } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java index 2bf8f7f00869..2043d087e024 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -1,21 +1,21 @@ package org.baeldung.spring.persistence.model; +import java.io.Serializable; + import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; -import javax.validation.constraints.NotNull; @Entity -public class Foo { +public class Foo implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; @Column(nullable = false) - @NotNull private String name; public Foo() { diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 3020250f6d03..576f536adc80 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,6 +4,7 @@ import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -50,6 +51,7 @@ public final void whenSameEntityIsCreatedTwice_thenDataException() { } @Test + @Ignore public final void temp_whenInvalidEntityIsCreated_thenDataException() { service.create(new Foo(randomAlphabetic(2048))); } From ecaeb5e87165d650a390cefc177d860226353458 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 16:21:36 +0300 Subject: [PATCH 061/206] persistence work --- spring-hibernate3/.classpath | 1 + spring-hibernate3/.project | 11 --- .../.settings/org.eclipse.jdt.core.prefs | 83 +++++++++++++++++++ .../org.eclipse.wst.common.component | 1 + spring-hibernate3/pom.xml | 14 ++++ .../persistence/dao/AbstractHibernateDao.java | 64 ++++++++++++++ .../spring/persistence/dao/FooDao.java | 5 +- .../spring/persistence/dao/IFooDao.java | 4 +- .../spring/persistence/dao/IOperations.java | 20 +++++ .../spring/persistence/model/Foo.java | 54 +++++++++++- .../persistence/service/FooService.java | 7 +- .../FooServicePersistenceIntegrationTest.java | 59 +++++++++++++ .../persistence/dao/AbstractHibernateDao.java | 17 ++-- .../spring/persistence/dao/IFooDao.java | 18 +--- .../spring/persistence/dao/IOperations.java | 20 +++++ 15 files changed, 341 insertions(+), 37 deletions(-) create mode 100644 spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java create mode 100644 spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java create mode 100644 spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java diff --git a/spring-hibernate3/.classpath b/spring-hibernate3/.classpath index 593395a46e93..7e214d86c6e2 100644 --- a/spring-hibernate3/.classpath +++ b/spring-hibernate3/.classpath @@ -6,6 +6,7 @@
+ diff --git a/spring-hibernate3/.project b/spring-hibernate3/.project index fba218889745..5725f008def9 100644 --- a/spring-hibernate3/.project +++ b/spring-hibernate3/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-hibernate3/.settings/org.eclipse.jdt.core.prefs b/spring-hibernate3/.settings/org.eclipse.jdt.core.prefs index 62492222ad2e..33f3a5c234c0 100644 --- a/spring-hibernate3/.settings/org.eclipse.jdt.core.prefs +++ b/spring-hibernate3/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,9 @@ eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve @@ -6,7 +11,85 @@ org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-hibernate3/.settings/org.eclipse.wst.common.component b/spring-hibernate3/.settings/org.eclipse.wst.common.component index 14b1679703ce..2078f0abbbc5 100644 --- a/spring-hibernate3/.settings/org.eclipse.wst.common.component +++ b/spring-hibernate3/.settings/org.eclipse.wst.common.component @@ -4,6 +4,7 @@ + diff --git a/spring-hibernate3/pom.xml b/spring-hibernate3/pom.xml index 2fc47dbcadf1..69d9da3294f5 100644 --- a/spring-hibernate3/pom.xml +++ b/spring-hibernate3/pom.xml @@ -56,6 +56,20 @@ + + org.apache.commons + commons-lang3 + 3.1 + test + + + + org.springframework + spring-test + ${org.springframework.version} + test + + junit junit-dep diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java new file mode 100644 index 000000000000..0ff6307147c0 --- /dev/null +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java @@ -0,0 +1,64 @@ +package org.baeldung.spring.persistence.dao; + +import java.io.Serializable; +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import com.google.common.base.Preconditions; + +@SuppressWarnings("unchecked") +public abstract class AbstractHibernateDao implements IOperations { + private Class clazz; + + @Autowired + private SessionFactory sessionFactory; + + // API + + protected final void setClazz(final Class clazzToSet) { + clazz = clazzToSet; + } + + @Override + public final T findOne(final long id) { + return ((T) getCurrentSession().get(clazz, id)); + } + + @Override + public final List findAll() { + return getCurrentSession().createQuery("from " + clazz.getName()).list(); + } + + @Override + public final long create(final T entity) { + Preconditions.checkNotNull(entity); + return (Long) getCurrentSession().save(entity); + } + + @Override + public final T update(final T entity) { + Preconditions.checkNotNull(entity); + return (T) getCurrentSession().merge(entity); + } + + @Override + public final void delete(final T entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().delete(entity); + } + + @Override + public final void deleteById(final long entityId) { + final T entity = findOne(entityId); + Preconditions.checkState(entity != null); + delete(entity); + } + + protected final Session getCurrentSession() { + return sessionFactory.getCurrentSession(); + } + +} \ No newline at end of file diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java index a59bb30f48b1..1c76ed1f0405 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java @@ -1,12 +1,15 @@ package org.baeldung.spring.persistence.dao; +import org.baeldung.spring.persistence.model.Foo; import org.springframework.stereotype.Repository; @Repository -public class FooDao implements IFooDao { +public class FooDao extends AbstractHibernateDao implements IFooDao { public FooDao() { super(); + + setClazz(Foo.class); } // API diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index 91d44f5f6bfb..eea1f17b5a0d 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -1,5 +1,7 @@ package org.baeldung.spring.persistence.dao; -public interface IFooDao { +import org.baeldung.spring.persistence.model.Foo; + +public interface IFooDao extends IOperations { // } diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java new file mode 100644 index 000000000000..d2cb0a9cefcb --- /dev/null +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java @@ -0,0 +1,20 @@ +package org.baeldung.spring.persistence.dao; + +import java.io.Serializable; +import java.util.List; + +public interface IOperations { + + T findOne(final long id); + + List findAll(); + + long create(final T entity); + + T update(final T entity); + + void delete(final T entity); + + void deleteById(final long entityId); + +} diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java index 8842c26d95b1..2043d087e024 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java @@ -1,21 +1,33 @@ package org.baeldung.spring.persistence.model; +import java.io.Serializable; + +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity -public class Foo { +public class Foo implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; + @Column(nullable = false) + private String name; + public Foo() { super(); } + public Foo(final String name) { + super(); + + this.name = name; + } + // API public long getId() { @@ -26,6 +38,46 @@ public void setId(final long id) { this.id = id; } + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + // + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + } diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java index cda31a0e86ef..4983d9991506 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -1,6 +1,7 @@ package org.baeldung.spring.persistence.service; import org.baeldung.spring.persistence.dao.IFooDao; +import org.baeldung.spring.persistence.model.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -8,7 +9,7 @@ public class FooService { @Autowired - private IFooDao fooDao; + private IFooDao dao; public FooService() { super(); @@ -16,4 +17,8 @@ public FooService() { // API + public void create(final Foo entity) { + dao.create(entity); + } + } diff --git a/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java new file mode 100644 index 000000000000..576f536adc80 --- /dev/null +++ b/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -0,0 +1,59 @@ +package org.baeldung.spring.persistence.service; + +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; + +import org.baeldung.spring.persistence.config.PersistenceConfig; +import org.baeldung.spring.persistence.model.Foo; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.dao.InvalidDataAccessApiUsageException; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) +public class FooServicePersistenceIntegrationTest { + + @Autowired + private FooService service; + + // tests + + @Test + public final void whenContextIsBootstrapped_thenNoExceptions() { + // + } + + @Test + public final void whenEntityIsCreated_thenNoExceptions() { + service.create(new Foo(randomAlphabetic(6))); + } + + @Test(expected = DataIntegrityViolationException.class) + public final void whenInvalidEntityIsCreated_thenDataException() { + service.create(new Foo()); + } + + @Test(expected = DataIntegrityViolationException.class) + public final void whenEntityWithLongNameIsCreated_thenDataException() { + service.create(new Foo(randomAlphabetic(2048))); + } + + @Test(expected = InvalidDataAccessApiUsageException.class) + public final void whenSameEntityIsCreatedTwice_thenDataException() { + final Foo entity = new Foo(randomAlphabetic(8)); + service.create(entity); + service.create(entity); + } + + @Test + @Ignore + public final void temp_whenInvalidEntityIsCreated_thenDataException() { + service.create(new Foo(randomAlphabetic(2048))); + } + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java index 4ff95f112688..0ff6307147c0 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java @@ -10,7 +10,7 @@ import com.google.common.base.Preconditions; @SuppressWarnings("unchecked") -public abstract class AbstractHibernateDao { +public abstract class AbstractHibernateDao implements IOperations { private Class clazz; @Autowired @@ -22,31 +22,36 @@ protected final void setClazz(final Class clazzToSet) { clazz = clazzToSet; } - public final T findOne(final Long id) { - Preconditions.checkArgument(id != null); + @Override + public final T findOne(final long id) { return ((T) getCurrentSession().get(clazz, id)); } + @Override public final List findAll() { return getCurrentSession().createQuery("from " + clazz.getName()).list(); } - public final void create(final T entity) { + @Override + public final long create(final T entity) { Preconditions.checkNotNull(entity); - getCurrentSession().persist(entity); + return (Long) getCurrentSession().save(entity); } + @Override public final T update(final T entity) { Preconditions.checkNotNull(entity); return (T) getCurrentSession().merge(entity); } + @Override public final void delete(final T entity) { Preconditions.checkNotNull(entity); getCurrentSession().delete(entity); } - public final void deleteById(final Long entityId) { + @Override + public final void deleteById(final long entityId) { final T entity = findOne(entityId); Preconditions.checkState(entity != null); delete(entity); diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index 6ad12b147cc1..eea1f17b5a0d 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -1,21 +1,7 @@ package org.baeldung.spring.persistence.dao; -import java.util.List; - import org.baeldung.spring.persistence.model.Foo; -public interface IFooDao { - - Foo findOne(final Long id); - - List findAll(); - - void create(final Foo entity); - - Foo update(final Foo entity); - - void delete(final Foo entity); - - void deleteById(final Long entityId); - +public interface IFooDao extends IOperations { + // } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java new file mode 100644 index 000000000000..d2cb0a9cefcb --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java @@ -0,0 +1,20 @@ +package org.baeldung.spring.persistence.dao; + +import java.io.Serializable; +import java.util.List; + +public interface IOperations { + + T findOne(final long id); + + List findAll(); + + long create(final T entity); + + T update(final T entity); + + void delete(final T entity); + + void deleteById(final long entityId); + +} From 780300b8b3a4c23e26c46ba678a270d0b08d9069 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 16:48:11 +0300 Subject: [PATCH 062/206] persistence work --- .../baeldung/spring/persistence/config/PersistenceConfig.java | 3 ++- .../spring/persistence/config/PersistenceXmlConfig.java | 3 +-- .../baeldung/spring/persistence/dao/AbstractHibernateDao.java | 4 ++-- .../java/org/baeldung/spring/persistence/dao/IOperations.java | 2 +- .../org/baeldung/spring/persistence/service/FooService.java | 2 ++ 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java index b59ea8e3414e..769f3132f522 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @@ -17,7 +18,7 @@ import com.google.common.base.Preconditions; -// @Configuration +@Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java index d8791b6bcc7b..e38b57fbcaf8 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java @@ -1,11 +1,10 @@ package org.baeldung.spring.persistence.config; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.transaction.annotation.EnableTransactionManagement; -@Configuration +// @Configuration @EnableTransactionManagement @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) @ImportResource({ "classpath:persistenceConfig.xml" }) diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java index 0ff6307147c0..9a579245d39d 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java @@ -33,9 +33,9 @@ public final List findAll() { } @Override - public final long create(final T entity) { + public final void create(final T entity) { Preconditions.checkNotNull(entity); - return (Long) getCurrentSession().save(entity); + getCurrentSession().persist(entity); } @Override diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java index d2cb0a9cefcb..51591c57b433 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java @@ -9,7 +9,7 @@ public interface IOperations { List findAll(); - long create(final T entity); + void create(final T entity); T update(final T entity); diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java index 4983d9991506..1d3b5c4a0201 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java @@ -4,8 +4,10 @@ import org.baeldung.spring.persistence.model.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service +@Transactional public class FooService { @Autowired From 1a8b39bde6b75308c20b41be4d99ba0e394ac9e3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 16:55:10 +0300 Subject: [PATCH 063/206] one to one initial work --- .../spring/persistence/dao/IChildDao.java | 8 +++++ .../spring/persistence/dao/IFooDao.java | 1 + .../spring/persistence/dao/IOwnerDao.java | 8 +++++ .../{ => common}/AbstractHibernateDao.java | 2 +- .../dao/{ => common}/IOperations.java | 2 +- .../spring/persistence/dao/impl/ChildDao.java | 24 +++++++++++++++ .../persistence/dao/{ => impl}/FooDao.java | 4 ++- .../spring/persistence/dao/impl/OwnerDao.java | 24 +++++++++++++++ .../spring/persistence/model/Child.java | 30 +++++++++++++++++++ .../spring/persistence/model/Owner.java | 30 +++++++++++++++++++ 10 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/{ => common}/AbstractHibernateDao.java (96%) rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/{ => common}/IOperations.java (85%) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/{ => impl}/FooDao.java (71%) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java new file mode 100644 index 000000000000..0a2180bed3cd --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java @@ -0,0 +1,8 @@ +package org.baeldung.spring.persistence.dao; + +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Child; + +public interface IChildDao extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java index eea1f17b5a0d..646b3af228b6 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java @@ -1,5 +1,6 @@ package org.baeldung.spring.persistence.dao; +import org.baeldung.spring.persistence.dao.common.IOperations; import org.baeldung.spring.persistence.model.Foo; public interface IFooDao extends IOperations { diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java new file mode 100644 index 000000000000..beda16493593 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java @@ -0,0 +1,8 @@ +package org.baeldung.spring.persistence.dao; + +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Owner; + +public interface IOwnerDao extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java similarity index 96% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java index 0ff6307147c0..25d14cd69714 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.spring.persistence.dao.common; import java.io.Serializable; import java.util.List; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java similarity index 85% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java index d2cb0a9cefcb..716bd40e9b97 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.spring.persistence.dao.common; import java.io.Serializable; import java.util.List; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java new file mode 100644 index 000000000000..380787823c92 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java @@ -0,0 +1,24 @@ +package org.baeldung.spring.persistence.dao.impl; + +import org.baeldung.spring.persistence.dao.IChildDao; +import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; +import org.baeldung.spring.persistence.model.Child; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class ChildDao extends AbstractHibernateDao implements IChildDao { + + @Autowired + private SessionFactory sessionFactory; + + public ChildDao() { + super(); + + setClazz(Child.class); + } + + // API + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/FooDao.java similarity index 71% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/FooDao.java index 1efa61ffb283..c083b41799b5 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/FooDao.java @@ -1,5 +1,7 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.spring.persistence.dao.impl; +import org.baeldung.spring.persistence.dao.IFooDao; +import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; import org.baeldung.spring.persistence.model.Foo; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java new file mode 100644 index 000000000000..a9156d06cf15 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java @@ -0,0 +1,24 @@ +package org.baeldung.spring.persistence.dao.impl; + +import org.baeldung.spring.persistence.dao.IOwnerDao; +import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; +import org.baeldung.spring.persistence.model.Owner; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class OwnerDao extends AbstractHibernateDao implements IOwnerDao { + + @Autowired + private SessionFactory sessionFactory; + + public OwnerDao() { + super(); + + setClazz(Owner.class); + } + + // API + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java new file mode 100644 index 000000000000..123ab2ac17ac --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java @@ -0,0 +1,30 @@ +package org.baeldung.spring.persistence.model; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Child implements Serializable { + + @Id + @GeneratedValue + private long id; + + public Child() { + super(); + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java new file mode 100644 index 000000000000..d2f8d36f4482 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java @@ -0,0 +1,30 @@ +package org.baeldung.spring.persistence.model; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Owner implements Serializable { + + @Id + @GeneratedValue + private long id; + + public Owner() { + super(); + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + +} From 011d6a1f78162dcdbf04161574c79f8e5e06fd8a Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 16:58:37 +0300 Subject: [PATCH 064/206] persistence work (unstable) --- .../dao/common/AbstractHibernateDao.java | 4 +- .../persistence/dao/common/IOperations.java | 2 +- .../service/common/AbstractService.java | 42 +++++++++++++++++++ .../service/{ => impl}/FooService.java | 11 +++-- .../FooServicePersistenceIntegrationTest.java | 1 + 5 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/{ => impl}/FooService.java (56%) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java index 25d14cd69714..0d9a691ab8e4 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java @@ -33,9 +33,9 @@ public final List findAll() { } @Override - public final long create(final T entity) { + public final void create(final T entity) { Preconditions.checkNotNull(entity); - return (Long) getCurrentSession().save(entity); + getCurrentSession().save(entity); } @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java index 716bd40e9b97..12ac048d745c 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java @@ -9,7 +9,7 @@ public interface IOperations { List findAll(); - long create(final T entity); + void create(final T entity); T update(final T entity); diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java new file mode 100644 index 000000000000..009bb03c45d3 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java @@ -0,0 +1,42 @@ +package org.baeldung.spring.persistence.service.common; + +import java.io.Serializable; +import java.util.List; + +import org.baeldung.spring.persistence.dao.common.IOperations; + +public abstract class AbstractService implements IOperations { + + @Override + public T findOne(final long id) { + return getDao().findOne(id); + } + + @Override + public List findAll() { + return getDao().findAll(); + } + + @Override + public void create(final T entity) { + getDao().create(entity); + } + + @Override + public T update(final T entity) { + return getDao().update(entity); + } + + @Override + public void delete(final T entity) { + getDao().delete(entity); + } + + @Override + public void deleteById(final long entityId) { + getDao().deleteById(entityId); + } + + protected abstract IOperations getDao(); + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java similarity index 56% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java index 1d3b5c4a0201..7438258e30ee 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java @@ -1,14 +1,16 @@ -package org.baeldung.spring.persistence.service; +package org.baeldung.spring.persistence.service.impl; import org.baeldung.spring.persistence.dao.IFooDao; +import org.baeldung.spring.persistence.dao.common.IOperations; import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.spring.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional -public class FooService { +public class FooService extends AbstractService { @Autowired private IFooDao dao; @@ -19,8 +21,9 @@ public FooService() { // API - public void create(final Foo entity) { - dao.create(entity); + @Override + protected IOperations getDao() { + return dao; } } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 576f536adc80..bc629f4ae320 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,6 +4,7 @@ import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.spring.persistence.service.impl.FooService; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; From 7cbbf265f9989a8254103ae6684a21805bd0e1fa Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 17:01:26 +0300 Subject: [PATCH 065/206] persistence work --- .../persistence/dao/common/AbstractHibernateDao.java | 2 +- .../baeldung/spring/persistence/service/IFooService.java | 8 ++++++++ .../persistence/service/common/AbstractService.java | 2 ++ .../spring/persistence/service/impl/FooService.java | 3 ++- .../service/FooServicePersistenceIntegrationTest.java | 3 +-- 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java index 0d9a691ab8e4..81f6acf9dc6b 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java @@ -35,7 +35,7 @@ public final List findAll() { @Override public final void create(final T entity) { Preconditions.checkNotNull(entity); - getCurrentSession().save(entity); + getCurrentSession().persist(entity); } @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java new file mode 100644 index 000000000000..59d532aa5459 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java @@ -0,0 +1,8 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Foo; + +public interface IFooService extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java index 009bb03c45d3..6d0f2f49d623 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java @@ -4,7 +4,9 @@ import java.util.List; import org.baeldung.spring.persistence.dao.common.IOperations; +import org.springframework.transaction.annotation.Transactional; +@Transactional public abstract class AbstractService implements IOperations { @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java index 7438258e30ee..6a97596e7d62 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java @@ -3,6 +3,7 @@ import org.baeldung.spring.persistence.dao.IFooDao; import org.baeldung.spring.persistence.dao.common.IOperations; import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.spring.persistence.service.IFooService; import org.baeldung.spring.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,7 +11,7 @@ @Service @Transactional -public class FooService extends AbstractService { +public class FooService extends AbstractService implements IFooService { @Autowired private IFooDao dao; diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index bc629f4ae320..d35440bf1543 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,7 +4,6 @@ import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; -import org.baeldung.spring.persistence.service.impl.FooService; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -20,7 +19,7 @@ public class FooServicePersistenceIntegrationTest { @Autowired - private FooService service; + private IFooService service; // tests From 2035877d58b78a2757d6f2990e713616284a50c3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 17:03:17 +0300 Subject: [PATCH 066/206] persistence work --- .../spring/persistence/dao/common/AbstractHibernateDao.java | 2 +- .../baeldung/spring/persistence/service/impl/FooService.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java index 81f6acf9dc6b..cf293231ab3f 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java @@ -19,7 +19,7 @@ public abstract class AbstractHibernateDao implements IO // API protected final void setClazz(final Class clazzToSet) { - clazz = clazzToSet; + clazz = Preconditions.checkNotNull(clazzToSet); } @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java index 6a97596e7d62..19223a82ca4a 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java @@ -7,10 +7,8 @@ import org.baeldung.spring.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service -@Transactional public class FooService extends AbstractService implements IFooService { @Autowired From 2bde87bef2a973d1c9b3fabe6c59db5f7ebc1fcd Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 17:14:49 +0300 Subject: [PATCH 067/206] new owner - child support --- .../persistence/service/IChildService.java | 8 ++++++ .../persistence/service/IOwnerService.java | 8 ++++++ .../service/impl/ChildService.java | 28 +++++++++++++++++++ .../service/impl/OwnerService.java | 28 +++++++++++++++++++ ...wnerServicePersistenceIntegrationTest.java | 28 +++++++++++++++++++ 5 files changed, 100 insertions(+) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java create mode 100644 spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java new file mode 100644 index 000000000000..785d581c799f --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java @@ -0,0 +1,8 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Child; + +public interface IChildService extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java new file mode 100644 index 000000000000..66e647b25354 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java @@ -0,0 +1,8 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Owner; + +public interface IOwnerService extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java new file mode 100644 index 000000000000..d28682fdfd7c --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java @@ -0,0 +1,28 @@ +package org.baeldung.spring.persistence.service.impl; + +import org.baeldung.spring.persistence.dao.IChildDao; +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Child; +import org.baeldung.spring.persistence.service.IChildService; +import org.baeldung.spring.persistence.service.common.AbstractService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class ChildService extends AbstractService implements IChildService { + + @Autowired + private IChildDao dao; + + public ChildService() { + super(); + } + + // API + + @Override + protected IOperations getDao() { + return dao; + } + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java new file mode 100644 index 000000000000..e3f2f7a04f05 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java @@ -0,0 +1,28 @@ +package org.baeldung.spring.persistence.service.impl; + +import org.baeldung.spring.persistence.dao.IOwnerDao; +import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.spring.persistence.model.Owner; +import org.baeldung.spring.persistence.service.IOwnerService; +import org.baeldung.spring.persistence.service.common.AbstractService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class OwnerService extends AbstractService implements IOwnerService { + + @Autowired + private IOwnerDao dao; + + public OwnerService() { + super(); + } + + // API + + @Override + protected IOperations getDao() { + return dao; + } + +} diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java new file mode 100644 index 000000000000..4b668777a855 --- /dev/null +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java @@ -0,0 +1,28 @@ +package org.baeldung.spring.persistence.service; + +import org.baeldung.spring.persistence.config.PersistenceConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) +public class OwnerServicePersistenceIntegrationTest { + + @Autowired + private IOwnerService service; + + @Autowired + private IChildService childService; + + // tests + + @Test + public final void whenContextIsBootstrapped_thenNoExceptions() { + // + } + +} From f50f4eb6a6ad2b2267d36990b81e435fe8715517 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 17:15:36 +0300 Subject: [PATCH 068/206] name change --- .../dao/{IOwnerDao.java => IParentDao.java} | 4 ++-- .../dao/impl/{OwnerDao.java => ParentDao.java} | 10 +++++----- .../persistence/model/{Owner.java => Parent.java} | 4 ++-- .../{IOwnerService.java => IParentService.java} | 4 ++-- .../impl/{OwnerService.java => ParentService.java} | 14 +++++++------- ...> ParentServicePersistenceIntegrationTest.java} | 4 ++-- 6 files changed, 20 insertions(+), 20 deletions(-) rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/{IOwnerDao.java => IParentDao.java} (51%) rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/{OwnerDao.java => ParentDao.java} (60%) rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/{Owner.java => Parent.java} (85%) rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/{IOwnerService.java => IParentService.java} (51%) rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/{OwnerService.java => ParentService.java} (52%) rename spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/{OwnerServicePersistenceIntegrationTest.java => ParentServicePersistenceIntegrationTest.java} (89%) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java similarity index 51% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java index beda16493593..1b35ba9f018e 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IOwnerDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java @@ -1,8 +1,8 @@ package org.baeldung.spring.persistence.dao; import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Owner; +import org.baeldung.spring.persistence.model.Parent; -public interface IOwnerDao extends IOperations { +public interface IParentDao extends IOperations { // } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ParentDao.java similarity index 60% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ParentDao.java index a9156d06cf15..6604c7a77430 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/OwnerDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ParentDao.java @@ -1,22 +1,22 @@ package org.baeldung.spring.persistence.dao.impl; -import org.baeldung.spring.persistence.dao.IOwnerDao; +import org.baeldung.spring.persistence.dao.IParentDao; import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; -import org.baeldung.spring.persistence.model.Owner; +import org.baeldung.spring.persistence.model.Parent; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository -public class OwnerDao extends AbstractHibernateDao implements IOwnerDao { +public class ParentDao extends AbstractHibernateDao implements IParentDao { @Autowired private SessionFactory sessionFactory; - public OwnerDao() { + public ParentDao() { super(); - setClazz(Owner.class); + setClazz(Parent.class); } // API diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java similarity index 85% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java index d2f8d36f4482..2fb6367feea1 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Owner.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java @@ -7,13 +7,13 @@ import javax.persistence.Id; @Entity -public class Owner implements Serializable { +public class Parent implements Serializable { @Id @GeneratedValue private long id; - public Owner() { + public Parent() { super(); } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java similarity index 51% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java index 66e647b25354..6d37d75354f9 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IOwnerService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java @@ -1,8 +1,8 @@ package org.baeldung.spring.persistence.service; import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Owner; +import org.baeldung.spring.persistence.model.Parent; -public interface IOwnerService extends IOperations { +public interface IParentService extends IOperations { // } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ParentService.java similarity index 52% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ParentService.java index e3f2f7a04f05..84d42772993c 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/OwnerService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ParentService.java @@ -1,27 +1,27 @@ package org.baeldung.spring.persistence.service.impl; -import org.baeldung.spring.persistence.dao.IOwnerDao; +import org.baeldung.spring.persistence.dao.IParentDao; import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Owner; -import org.baeldung.spring.persistence.service.IOwnerService; +import org.baeldung.spring.persistence.model.Parent; +import org.baeldung.spring.persistence.service.IParentService; import org.baeldung.spring.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service -public class OwnerService extends AbstractService implements IOwnerService { +public class ParentService extends AbstractService implements IParentService { @Autowired - private IOwnerDao dao; + private IParentDao dao; - public OwnerService() { + public ParentService() { super(); } // API @Override - protected IOperations getDao() { + protected IOperations getDao() { return dao; } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java similarity index 89% rename from spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java rename to spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index 4b668777a855..11d13eba60ea 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/OwnerServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -10,10 +10,10 @@ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) -public class OwnerServicePersistenceIntegrationTest { +public class ParentServicePersistenceIntegrationTest { @Autowired - private IOwnerService service; + private IParentService service; @Autowired private IChildService childService; From c1dce2cd5963c36d1182021193b2ba50fb9815ac Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 17:28:25 +0300 Subject: [PATCH 069/206] temporary persistence work --- .../spring/persistence/model/Child.java | 15 ++++++++++++++ .../spring/persistence/model/Parent.java | 20 +++++++++++++++++++ ...rentServicePersistenceIntegrationTest.java | 12 +++++++++++ 3 files changed, 47 insertions(+) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java index 123ab2ac17ac..010063d252e9 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java @@ -3,8 +3,11 @@ import java.io.Serializable; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.OneToOne; +import javax.persistence.PrimaryKeyJoinColumn; @Entity public class Child implements Serializable { @@ -13,6 +16,10 @@ public class Child implements Serializable { @GeneratedValue private long id; + @OneToOne(fetch = FetchType.LAZY) + @PrimaryKeyJoinColumn + private Parent parent; + public Child() { super(); } @@ -27,4 +34,12 @@ public void setId(final long id) { this.id = id; } + public Parent getParent() { + return parent; + } + + public void setParent(final Parent parent) { + this.parent = parent; + } + } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java index 2fb6367feea1..39d43d1adfb8 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java @@ -2,9 +2,12 @@ import java.io.Serializable; +import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.OneToOne; @Entity public class Parent implements Serializable { @@ -13,10 +16,19 @@ public class Parent implements Serializable { @GeneratedValue private long id; + @OneToOne(fetch = FetchType.LAZY, mappedBy = "parent", cascade = CascadeType.ALL) + private Child child; + public Parent() { super(); } + public Parent(final Child child) { + super(); + + this.child = child; + } + // API public long getId() { @@ -27,4 +39,12 @@ public void setId(final long id) { this.id = id; } + public Child getChild() { + return child; + } + + public void setChild(final Child child) { + this.child = child; + } + } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index 11d13eba60ea..df40f6a6a95f 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -1,6 +1,8 @@ package org.baeldung.spring.persistence.service; import org.baeldung.spring.persistence.config.PersistenceConfig; +import org.baeldung.spring.persistence.model.Child; +import org.baeldung.spring.persistence.model.Parent; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -25,4 +27,14 @@ public final void whenContextIsBootstrapped_thenNoExceptions() { // } + @Test + public final void whenEntityIsCreated_thenNoExceptions() { + final Child childEntity = new Child(); + childService.create(childEntity); + + service.create(new Parent(childEntity)); + + System.out.println(); + } + } From fbb5402bf25349ada1a4b5a2c959c04abba541c3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 17:50:40 +0300 Subject: [PATCH 070/206] one to one done --- .../main/resources/persistence-mysql.properties | 2 +- .../baeldung/spring/persistence/model/Child.java | 10 ++++++++++ .../baeldung/spring/persistence/model/Parent.java | 14 ++++++++++++-- .../main/resources/persistence-mysql.properties | 2 +- .../ParentServicePersistenceIntegrationTest.java | 9 +++++++-- 5 files changed, 31 insertions(+), 6 deletions(-) diff --git a/spring-hibernate3/src/main/resources/persistence-mysql.properties b/spring-hibernate3/src/main/resources/persistence-mysql.properties index a1ff997616ae..d5769fc9780b 100644 --- a/spring-hibernate3/src/main/resources/persistence-mysql.properties +++ b/spring-hibernate3/src/main/resources/persistence-mysql.properties @@ -1,6 +1,6 @@ # jdbc.X jdbc.driverClassName=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate3_01?createDatabaseIfNotExist=true jdbc.user=tutorialuser jdbc.pass=tutorialmy5ql diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java index 010063d252e9..e2382dfe11e9 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java @@ -34,6 +34,7 @@ public void setId(final long id) { this.id = id; } + @OneToOne(mappedBy = "child") public Parent getParent() { return parent; } @@ -42,4 +43,13 @@ public void setParent(final Parent parent) { this.parent = parent; } + // + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Child [id=").append(id).append(", parent=").append(parent).append("]"); + return builder.toString(); + } + } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java index 39d43d1adfb8..c936e27dea65 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java @@ -4,9 +4,9 @@ import javax.persistence.CascadeType; import javax.persistence.Entity; -import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.OneToOne; @Entity @@ -16,7 +16,6 @@ public class Parent implements Serializable { @GeneratedValue private long id; - @OneToOne(fetch = FetchType.LAZY, mappedBy = "parent", cascade = CascadeType.ALL) private Child child; public Parent() { @@ -39,6 +38,8 @@ public void setId(final long id) { this.id = id; } + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "child_fk") public Child getChild() { return child; } @@ -47,4 +48,13 @@ public void setChild(final Child child) { this.child = child; } + // + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Parent [id=").append(id).append(", child=").append(child).append("]"); + return builder.toString(); + } + } diff --git a/spring-hibernate4/src/main/resources/persistence-mysql.properties b/spring-hibernate4/src/main/resources/persistence-mysql.properties index a1ff997616ae..8263b0d9accd 100644 --- a/spring-hibernate4/src/main/resources/persistence-mysql.properties +++ b/spring-hibernate4/src/main/resources/persistence-mysql.properties @@ -1,6 +1,6 @@ # jdbc.X jdbc.driverClassName=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate4_01?createDatabaseIfNotExist=true jdbc.user=tutorialuser jdbc.pass=tutorialmy5ql diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index df40f6a6a95f..7f7060f0b9cd 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -32,9 +32,14 @@ public final void whenEntityIsCreated_thenNoExceptions() { final Child childEntity = new Child(); childService.create(childEntity); - service.create(new Parent(childEntity)); + final Parent parentEntity = new Parent(childEntity); + service.create(parentEntity); - System.out.println(); + System.out.println("Child = " + childService.findOne(childEntity.getId())); + System.out.println("Child - parent = " + childService.findOne(childEntity.getId()).getParent()); + + System.out.println("Parent = " + service.findOne(parentEntity.getId())); + System.out.println("Parent - child = " + service.findOne(parentEntity.getId()).getChild()); } } From cb1c8cb3e270db5bd4e4b8c09ffbb0118b6a468c Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 18:03:52 +0300 Subject: [PATCH 071/206] bidrectional foregin key one to one --- .../baeldung/spring/persistence/model/Child.java | 6 +----- .../baeldung/spring/persistence/model/Parent.java | 4 ++-- .../ParentServicePersistenceIntegrationTest.java | 13 ++++++++++++- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java index e2382dfe11e9..8589a2f49787 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java @@ -3,11 +3,9 @@ import java.io.Serializable; import javax.persistence.Entity; -import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; -import javax.persistence.PrimaryKeyJoinColumn; @Entity public class Child implements Serializable { @@ -16,8 +14,7 @@ public class Child implements Serializable { @GeneratedValue private long id; - @OneToOne(fetch = FetchType.LAZY) - @PrimaryKeyJoinColumn + @OneToOne(mappedBy = "child") private Parent parent; public Child() { @@ -34,7 +31,6 @@ public void setId(final long id) { this.id = id; } - @OneToOne(mappedBy = "child") public Parent getParent() { return parent; } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java index c936e27dea65..4fd7af6b0972 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java @@ -16,6 +16,8 @@ public class Parent implements Serializable { @GeneratedValue private long id; + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "child_fk") private Child child; public Parent() { @@ -38,8 +40,6 @@ public void setId(final long id) { this.id = id; } - @OneToOne(cascade = CascadeType.ALL) - @JoinColumn(name = "child_fk") public Child getChild() { return child; } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index 7f7060f0b9cd..126066a941b5 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -28,7 +28,7 @@ public final void whenContextIsBootstrapped_thenNoExceptions() { } @Test - public final void whenEntityIsCreated_thenNoExceptions() { + public final void whenOneToOneEntitiesAreCreated_thenNoExceptions() { final Child childEntity = new Child(); childService.create(childEntity); @@ -42,4 +42,15 @@ public final void whenEntityIsCreated_thenNoExceptions() { System.out.println("Parent - child = " + service.findOne(parentEntity.getId()).getChild()); } + @Test + public final void whenChildIsDeleted_thenDataException() { + final Child childEntity = new Child(); + childService.create(childEntity); + + final Parent parentEntity = new Parent(childEntity); + service.create(parentEntity); + + childService.delete(childEntity); + } + } From 26e6d6eb86a25436932587237d147b384bbc3a6f Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 18:11:09 +0300 Subject: [PATCH 072/206] good one to one mapping, failing tests for constraint violation --- .../spring/persistence/dao/common/AbstractHibernateDao.java | 3 ++- .../java/org/baeldung/spring/persistence/model/Child.java | 2 +- .../java/org/baeldung/spring/persistence/model/Parent.java | 2 +- .../service/FooServicePersistenceIntegrationTest.java | 1 + .../service/ParentServicePersistenceIntegrationTest.java | 4 ++++ 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java index cf293231ab3f..3476b8cadc9e 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java @@ -35,7 +35,8 @@ public final List findAll() { @Override public final void create(final T entity) { Preconditions.checkNotNull(entity); - getCurrentSession().persist(entity); + // getCurrentSession().persist(entity); + getCurrentSession().saveOrUpdate(entity); } @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java index 8589a2f49787..978502242c15 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java @@ -44,7 +44,7 @@ public void setParent(final Parent parent) { @Override public String toString() { final StringBuilder builder = new StringBuilder(); - builder.append("Child [id=").append(id).append(", parent=").append(parent).append("]"); + builder.append("Child [id=").append(id).append("]"); return builder.toString(); } diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java index 4fd7af6b0972..875b56df3438 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java @@ -53,7 +53,7 @@ public void setChild(final Child child) { @Override public String toString() { final StringBuilder builder = new StringBuilder(); - builder.append("Parent [id=").append(id).append(", child=").append(child).append("]"); + builder.append("Parent [id=").append(id).append("]"); return builder.toString(); } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index d35440bf1543..69d094f5d893 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -44,6 +44,7 @@ public final void whenEntityWithLongNameIsCreated_thenDataException() { } @Test(expected = InvalidDataAccessApiUsageException.class) + @Ignore("Right now, persist has saveOrUpdate semantics, so this will no longer fail") public final void whenSameEntityIsCreatedTwice_thenDataException() { final Foo entity = new Foo(randomAlphabetic(8)); service.create(entity); diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index 126066a941b5..27338a6c4ddc 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -3,6 +3,7 @@ import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Child; import org.baeldung.spring.persistence.model.Parent; +import org.hibernate.SessionFactory; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +21,9 @@ public class ParentServicePersistenceIntegrationTest { @Autowired private IChildService childService; + @Autowired + private SessionFactory sessionFactory; + // tests @Test From 34c89649fe1c16d4e5657da3cf43eef51d66769b Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 20:14:59 +0300 Subject: [PATCH 073/206] persistence work --- .../baeldung/spring/persistence/model/Parent.java | 2 +- .../ParentServicePersistenceIntegrationTest.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java index 875b56df3438..5a8702896001 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java @@ -16,7 +16,7 @@ public class Parent implements Serializable { @GeneratedValue private long id; - @OneToOne(cascade = CascadeType.ALL) + @OneToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH }) @JoinColumn(name = "child_fk") private Child child; diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index 27338a6c4ddc..753d94ac79ab 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -7,6 +7,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -46,14 +47,26 @@ public final void whenOneToOneEntitiesAreCreated_thenNoExceptions() { System.out.println("Parent - child = " + service.findOne(parentEntity.getId()).getChild()); } + @Test(expected = DataIntegrityViolationException.class) + public final void whenChildIsDeletedWhileParentStillHasForeignKeyToIt_thenDataException() { + final Child childEntity = new Child(); + childService.create(childEntity); + + final Parent parentEntity = new Parent(childEntity); + service.create(parentEntity); + + childService.delete(childEntity); + } + @Test - public final void whenChildIsDeleted_thenDataException() { + public final void whenChildIsDeletedAfterTheParent_thenNoExceptions() { final Child childEntity = new Child(); childService.create(childEntity); final Parent parentEntity = new Parent(childEntity); service.create(parentEntity); + service.delete(parentEntity); childService.delete(childEntity); } From 38361e887f172c03fd7030a4cff25421cbf8e95d Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 22 May 2013 14:50:48 +0300 Subject: [PATCH 074/206] deployment descriptor in java --- spring-mvc-java/pom.xml | 4 +- .../web/config/MainWebAppInitializer.java | 41 +++++++++++++++++++ .../webapp/WEB-INF/{web.xml => web_old.xml} | 0 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java rename spring-mvc-java/src/main/webapp/WEB-INF/{web.xml => web_old.xml} (100%) diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index bb983b43e6f0..45551f72426b 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -120,7 +120,7 @@ - 3.2.2.RELEASE + 3.2.3.RELEASE 1.7.5 @@ -132,7 +132,7 @@ 1.9.5 4.2.4 - 4.2.4 + 4.2.5 1.8.0 1.8.9 diff --git a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java new file mode 100644 index 000000000000..81a94f1a8c10 --- /dev/null +++ b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java @@ -0,0 +1,41 @@ +package org.baeldung.spring.web.config; + +import java.util.Set; + +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRegistration; + +import org.springframework.web.WebApplicationInitializer; +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.context.support.GenericWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +public class MainWebAppInitializer implements WebApplicationInitializer { + + /** + * Register and configure all Servlet container components necessary to power the web application. + */ + @Override + public void onStartup(final ServletContext sc) throws ServletException { + System.out.println("GreenhouseWebAppInitializer.onStartup()"); + + // Create the 'root' Spring application context + final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); + root.scan("org.baeldung.spring.web.config"); + // root.getEnvironment().setDefaultProfiles("embedded"); + + // Manages the lifecycle of the root application context + sc.addListener(new ContextLoaderListener(root)); + + // Handles requests into the application + final ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet(new GenericWebApplicationContext())); + appServlet.setLoadOnStartup(1); + final Set mappingConflicts = appServlet.addMapping("/"); + if (!mappingConflicts.isEmpty()) { + throw new IllegalStateException("'appServlet' could not be mapped to '/' due " + "to an existing mapping. This is a known issue under Tomcat versions " + "<= 7.0.14; see https://issues.apache.org/bugzilla/show_bug.cgi?id=51278"); + } + } + +} diff --git a/spring-mvc-java/src/main/webapp/WEB-INF/web.xml b/spring-mvc-java/src/main/webapp/WEB-INF/web_old.xml similarity index 100% rename from spring-mvc-java/src/main/webapp/WEB-INF/web.xml rename to spring-mvc-java/src/main/webapp/WEB-INF/web_old.xml From 47bfc87401638ce8ffa8b69eb8462af03974dd7f Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Wed, 22 May 2013 20:12:22 +0300 Subject: [PATCH 075/206] minor upgrades --- spring-security-basic-auth/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index fa41a090e6ed..4b114f1435dd 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -169,7 +169,7 @@ - 3.2.2.RELEASE + 3.2.3.RELEASE 3.1.4.RELEASE @@ -182,7 +182,7 @@ 1.9.5 4.2.4 - 4.2.4 + 4.2.5 1.8.0 1.8.9 From dd8debd720a80965e3b59ff286bef4b28e26e920 Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Wed, 22 May 2013 20:52:33 +0300 Subject: [PATCH 076/206] security work --- ...ientWebConfig.java => FrontendConfig.java} | 5 +-- .../baeldung/spring/web/config/WebConfig.java | 17 ++++++++ .../spring/web/controller/TestController.java | 28 +++++++++++++ .../src/main/resources/webSecurityConfig.xml | 41 +++++++++++-------- 4 files changed, 71 insertions(+), 20 deletions(-) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/{ClientWebConfig.java => FrontendConfig.java} (88%) create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/FrontendConfig.java similarity index 88% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/FrontendConfig.java index 4aadc3a48c92..ffcc855716da 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/FrontendConfig.java @@ -11,9 +11,9 @@ @EnableWebMvc @Configuration -public class ClientWebConfig extends WebMvcConfigurerAdapter { +public class FrontendConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { + public FrontendConfig() { super(); } @@ -23,7 +23,6 @@ public ClientWebConfig() { public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); - registry.addViewController("/login.html"); registry.addViewController("/homepage.html"); } diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java new file mode 100644 index 000000000000..9a79aa3b6b29 --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ComponentScan("org.baeldung.spring.web.controller") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java new file mode 100644 index 000000000000..c7b04c14d2a4 --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java @@ -0,0 +1,28 @@ +package org.baeldung.spring.web.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class TestController { + + public TestController() { + super(); + } + + // API + + @RequestMapping("/permitAll") + @ResponseBody + public String permitAll() { + return "Permit All"; + } + + @RequestMapping("/securityNone") + @ResponseBody + public String securityNone() { + return "Security None"; + } + +} diff --git a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml index d2a28094461e..a7d8d679ea66 100644 --- a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml @@ -1,23 +1,30 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From ff3b2dfc53ebf527d4ac3b76785fcede20f174d4 Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 22 May 2013 22:03:20 +0300 Subject: [PATCH 077/206] security work --- .../src/main/resources/webSecurityConfig.xml | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml index a7d8d679ea66..5ddca9778643 100644 --- a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml @@ -1,30 +1,28 @@ - + - - + + - + - + - + - + - - - - - - - - - + + + + + + + \ No newline at end of file From e84500c4c48c801094929e4c00ae1f2b1c1e519e Mon Sep 17 00:00:00 2001 From: Eugen Date: Thu, 23 May 2013 11:13:36 +0300 Subject: [PATCH 078/206] minor work --- .../.settings/org.eclipse.jdt.core.prefs | 2 +- .../java/org/baeldung/spring/web/Foo.java | 11 +++++++ .../spring/web/controller/FooController.java | 29 +++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java diff --git a/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs b/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs index 723e5b12451a..df8135651462 100644 --- a/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs +++ b/spring-security-basic-auth/.settings/org.eclipse.jdt.core.prefs @@ -42,7 +42,7 @@ org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java new file mode 100644 index 000000000000..a5e46bc8e545 --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java @@ -0,0 +1,11 @@ +package org.baeldung.spring.web; + +import java.io.Serializable; + +public class Foo implements Serializable { + + public Foo() { + super(); + } + +} diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java new file mode 100644 index 000000000000..eb0575f279a8 --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java @@ -0,0 +1,29 @@ +package org.baeldung.spring.web.controller; + +import javax.servlet.http.HttpServletResponse; + +import org.baeldung.spring.web.Foo; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.util.UriComponentsBuilder; + +@Controller +@RequestMapping(value = "/foo") +public class FooController { + + public FooController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { + return new Foo(); + } + +} From 794e3c0a95e6337a392a7d0d5770700fdd714c98 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 23 May 2013 21:28:33 +0300 Subject: [PATCH 079/206] logout work --- spring-security-login/pom.xml | 4 ++-- .../src/main/resources/webSecurityConfig.xml | 4 +++- .../src/main/webapp/WEB-INF/view/homepage.jsp | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index d8cecabcdb63..b22672d8ebd9 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -169,7 +169,7 @@ - 3.2.2.RELEASE + 3.2.3.RELEASE 3.1.4.RELEASE @@ -182,7 +182,7 @@ 1.9.5 4.2.4 - 4.2.4 + 4.2.5 1.8.0 1.8.9 diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index 6394c926995b..7fcee298b54b 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -6,7 +6,7 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - + + + diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp index 7cc14b5dcddf..5d96e37e32d5 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp +++ b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp @@ -1,7 +1,9 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

This is the body of the sample view

+ "> Logout \ No newline at end of file From e85fd01d616d45b44c4c4a4576ed8ba039d2eb95 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 23 May 2013 23:25:53 +0300 Subject: [PATCH 080/206] security work --- .../security/CustomLogoutSuccessHandler.java | 29 ++++++++++++++ .../spring/web/config/ClientWebConfig.java | 38 ++++++++++--------- .../src/main/resources/webSecurityConfig.xml | 20 +++++++--- .../main/webapp/WEB-INF/view/anonymous.jsp | 10 +++++ .../src/main/webapp/WEB-INF/view/homepage.jsp | 2 +- .../src/main/webapp/WEB-INF/web.xml | 6 +-- 6 files changed, 78 insertions(+), 27 deletions(-) create mode 100644 spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java create mode 100644 spring-security-login/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java b/spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java new file mode 100644 index 000000000000..4d19744033d0 --- /dev/null +++ b/spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java @@ -0,0 +1,29 @@ +package org.baeldung.spring.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; +import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; + +public class CustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler { + + public CustomLogoutSuccessHandler() { + super(); + } + + // API + + @Override + public void onLogoutSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { + final String refererUrl = request.getHeader("Referer"); + System.out.println(refererUrl); + + super.onLogoutSuccess(request, response, authentication); + } + +} diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 4aadc3a48c92..316759b24b3a 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -13,28 +13,30 @@ @Configuration public class ClientWebConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { - super(); - } + public ClientWebConfig() { + super(); + } - // API + // API - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); - registry.addViewController("/login.html"); - registry.addViewController("/homepage.html"); - } + registry.addViewController("/anonymous.html"); - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + registry.addViewController("/login.html"); + registry.addViewController("/homepage.html"); + } - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - return bean; - } + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } } \ No newline at end of file diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index 7fcee298b54b..e2b63fe45820 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -5,9 +5,14 @@ http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - - - + + + + + + + + - - + + + + diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/anonymous.jsp new file mode 100644 index 000000000000..d4e9c0289b29 --- /dev/null +++ b/spring-security-login/src/main/webapp/WEB-INF/view/anonymous.jsp @@ -0,0 +1,10 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + +

Anonymous page

+ + ">To Login + + \ No newline at end of file diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp index 5d96e37e32d5..5504d2f134ee 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp +++ b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp @@ -4,6 +4,6 @@

This is the body of the sample view

- "> Logout + ">Logout \ No newline at end of file diff --git a/spring-security-login/src/main/webapp/WEB-INF/web.xml b/spring-security-login/src/main/webapp/WEB-INF/web.xml index 23e0e8c1d7b0..6274cdd9fe95 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-login/src/main/webapp/WEB-INF/web.xml @@ -45,8 +45,8 @@ /* - - index.html - + + + \ No newline at end of file From 144ce58d766dc0ad765fdd482b2393e3b296317f Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 24 May 2013 21:36:46 +0300 Subject: [PATCH 081/206] exception work --- .../spring/web/config/ClientWebConfig.java | 34 +++++++++---------- .../baeldung/spring/web/config/WebConfig.java | 19 +++++++++++ .../src/main/java/org/baeldung/web/BeanA.java | 16 +++++++++ .../src/main/java/org/baeldung/web/BeanB.java | 9 +++++ 4 files changed, 61 insertions(+), 17 deletions(-) create mode 100644 spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java create mode 100644 spring-mvc-java/src/main/java/org/baeldung/web/BeanA.java create mode 100644 spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java diff --git a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java index 2758a707e6bc..945c1794fba9 100644 --- a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -13,27 +13,27 @@ @Configuration public class ClientWebConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { - super(); - } + public ClientWebConfig() { + super(); + } - // API + // API - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); - registry.addViewController("/sample.html"); - } + registry.addViewController("/sample.html"); + } - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); - return bean; - } + return bean; + } } \ No newline at end of file diff --git a/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java new file mode 100644 index 000000000000..d60bcfe12760 --- /dev/null +++ b/spring-mvc-java/src/main/java/org/baeldung/spring/web/config/WebConfig.java @@ -0,0 +1,19 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableWebMvc +@ComponentScan("org.baeldung.web") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-mvc-java/src/main/java/org/baeldung/web/BeanA.java b/spring-mvc-java/src/main/java/org/baeldung/web/BeanA.java new file mode 100644 index 000000000000..b6b6f49c16d1 --- /dev/null +++ b/spring-mvc-java/src/main/java/org/baeldung/web/BeanA.java @@ -0,0 +1,16 @@ +package org.baeldung.web; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class BeanA { + + @Autowired + private BeanB b; + + public BeanA() { + super(); + } + +} diff --git a/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java b/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java new file mode 100644 index 000000000000..8d0f29b29ee4 --- /dev/null +++ b/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java @@ -0,0 +1,9 @@ +package org.baeldung.web; + +public class BeanB { + + public BeanB() { + super(); + } + +} From 17228e375d3ffb5227373a3e09a5e027d3daacea Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 24 May 2013 22:45:12 +0300 Subject: [PATCH 082/206] new project, bean wiring tests in the old mvc project --- spring-all/.classpath | 37 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-all/.gitignore | 13 + spring-all/.project | 60 ++++ spring-all/.settings/.jsdtscope | 12 + .../.settings/org.eclipse.jdt.core.prefs | 91 ++++++ spring-all/.settings/org.eclipse.jdt.ui.prefs | 55 ++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 + .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-all/.springBeans | 14 + spring-all/README.md | 3 + spring-all/pom.xml | 141 +++++++++ .../spring/web/config/ClientWebConfig.java | 39 +++ .../web/config/MainWebAppInitializer.java | 41 +++ .../baeldung/spring/web/config/WebConfig.java | 19 ++ .../src/main/java/org/baeldung/web/BeanA.java | 16 + .../src/main/java/org/baeldung/web/BeanB.java | 12 + spring-all/src/main/resources/logback.xml | 20 ++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web_old.xml | 42 +++ spring-all/src/test/resources/.gitignore | 13 + spring-mvc-java/pom.xml | 279 +++++++++--------- .../src/main/java/org/baeldung/web/BeanB.java | 3 + 30 files changed, 830 insertions(+), 140 deletions(-) create mode 100644 spring-all/.classpath create mode 100644 spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-all/.gitignore create mode 100644 spring-all/.project create mode 100644 spring-all/.settings/.jsdtscope create mode 100644 spring-all/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-all/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-all/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-all/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-all/.settings/org.eclipse.wst.common.component create mode 100644 spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-all/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-all/.springBeans create mode 100644 spring-all/README.md create mode 100644 spring-all/pom.xml create mode 100644 spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/web/BeanA.java create mode 100644 spring-all/src/main/java/org/baeldung/web/BeanB.java create mode 100644 spring-all/src/main/resources/logback.xml create mode 100644 spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-all/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-all/src/main/webapp/WEB-INF/web_old.xml create mode 100644 spring-all/src/test/resources/.gitignore diff --git a/spring-all/.classpath b/spring-all/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-all/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-all/.gitignore b/spring-all/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-all/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-all/.project b/spring-all/.project new file mode 100644 index 000000000000..4ae82dabf052 --- /dev/null +++ b/spring-all/.project @@ -0,0 +1,60 @@ + + + spring-all + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-all/.settings/.jsdtscope b/spring-all/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-all/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-all/.settings/org.eclipse.jdt.core.prefs b/spring-all/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..0924ed68cff2 --- /dev/null +++ b/spring-all/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,91 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-all/.settings/org.eclipse.jdt.ui.prefs b/spring-all/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-all/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-all/.settings/org.eclipse.m2e.core.prefs b/spring-all/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-all/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-all/.settings/org.eclipse.m2e.wtp.prefs b/spring-all/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-all/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-all/.settings/org.eclipse.wst.common.component b/spring-all/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..847c6ff6987a --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-all/.settings/org.eclipse.wst.validation.prefs b/spring-all/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-all/.springBeans b/spring-all/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-all/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-all/README.md b/spring-all/README.md new file mode 100644 index 000000000000..1abc096086ed --- /dev/null +++ b/spring-all/README.md @@ -0,0 +1,3 @@ +[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) +========= + diff --git a/spring-all/pom.xml b/spring-all/pom.xml new file mode 100644 index 000000000000..9561c1316ebc --- /dev/null +++ b/spring-all/pom.xml @@ -0,0 +1,141 @@ + + 4.0.0 + org.baeldung + spring-all + 0.1-SNAPSHOT + + spring-all + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-all + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..945c1794fba9 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java b/spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java new file mode 100644 index 000000000000..81a94f1a8c10 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java @@ -0,0 +1,41 @@ +package org.baeldung.spring.web.config; + +import java.util.Set; + +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRegistration; + +import org.springframework.web.WebApplicationInitializer; +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.context.support.GenericWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +public class MainWebAppInitializer implements WebApplicationInitializer { + + /** + * Register and configure all Servlet container components necessary to power the web application. + */ + @Override + public void onStartup(final ServletContext sc) throws ServletException { + System.out.println("GreenhouseWebAppInitializer.onStartup()"); + + // Create the 'root' Spring application context + final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); + root.scan("org.baeldung.spring.web.config"); + // root.getEnvironment().setDefaultProfiles("embedded"); + + // Manages the lifecycle of the root application context + sc.addListener(new ContextLoaderListener(root)); + + // Handles requests into the application + final ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet(new GenericWebApplicationContext())); + appServlet.setLoadOnStartup(1); + final Set mappingConflicts = appServlet.addMapping("/"); + if (!mappingConflicts.isEmpty()) { + throw new IllegalStateException("'appServlet' could not be mapped to '/' due " + "to an existing mapping. This is a known issue under Tomcat versions " + "<= 7.0.14; see https://issues.apache.org/bugzilla/show_bug.cgi?id=51278"); + } + } + +} diff --git a/spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java b/spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java new file mode 100644 index 000000000000..d60bcfe12760 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java @@ -0,0 +1,19 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableWebMvc +@ComponentScan("org.baeldung.web") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java new file mode 100644 index 000000000000..b6b6f49c16d1 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/BeanA.java @@ -0,0 +1,16 @@ +package org.baeldung.web; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class BeanA { + + @Autowired + private BeanB b; + + public BeanA() { + super(); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB.java b/spring-all/src/main/java/org/baeldung/web/BeanB.java new file mode 100644 index 000000000000..49e5af4ccbe9 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/BeanB.java @@ -0,0 +1,12 @@ +package org.baeldung.web; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB { + + public BeanB() { + super(); + } + +} diff --git a/spring-all/src/main/resources/logback.xml b/spring-all/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-all/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-all/src/main/webapp/WEB-INF/view/sample.jsp b/spring-all/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-all/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-all/src/main/webapp/WEB-INF/web_old.xml b/spring-all/src/main/webapp/WEB-INF/web_old.xml new file mode 100644 index 000000000000..ba2bb591ed01 --- /dev/null +++ b/spring-all/src/main/webapp/WEB-INF/web_old.xml @@ -0,0 +1,42 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + + \ No newline at end of file diff --git a/spring-all/src/test/resources/.gitignore b/spring-all/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-all/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index 45551f72426b..913aa5058c30 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -1,142 +1,141 @@ - - 4.0.0 - org.baeldung - spring-mvc-java - 0.1-SNAPSHOT - - spring-mvc-java - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-mvc - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.0 - 1.8.9 - - + + 4.0.0 + org.baeldung + spring-mvc-java + 0.1-SNAPSHOT + + spring-mvc-java + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + \ No newline at end of file diff --git a/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java b/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java index 8d0f29b29ee4..49e5af4ccbe9 100644 --- a/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java +++ b/spring-mvc-java/src/main/java/org/baeldung/web/BeanB.java @@ -1,5 +1,8 @@ package org.baeldung.web; +import org.springframework.stereotype.Component; + +@Component public class BeanB { public BeanB() { From 8b070d278b8a539c87e0225af02dd7690a5c81d9 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 24 May 2013 22:49:48 +0300 Subject: [PATCH 083/206] exception work --- spring-all/pom.xml | 45 +++++++++++ .../{web => }/config/ClientWebConfig.java | 2 +- .../config/MainWebAppInitializer.java | 2 +- .../spring/config/PersistenceConfig.java | 79 +++++++++++++++++++ .../spring/{web => }/config/WebConfig.java | 2 +- .../src/main/java/org/baeldung/web/BeanA.java | 2 +- .../src/main/java/org/baeldung/web/BeanB.java | 4 +- .../main/java/org/baeldung/web/IBeanB.java | 5 ++ 8 files changed, 136 insertions(+), 5 deletions(-) rename spring-all/src/main/java/org/baeldung/spring/{web => }/config/ClientWebConfig.java (96%) rename spring-all/src/main/java/org/baeldung/spring/{web => }/config/MainWebAppInitializer.java (97%) create mode 100644 spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java rename spring-all/src/main/java/org/baeldung/spring/{web => }/config/WebConfig.java (92%) create mode 100644 spring-all/src/main/java/org/baeldung/web/IBeanB.java diff --git a/spring-all/pom.xml b/spring-all/pom.xml index 9561c1316ebc..bcbd87440c54 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -21,6 +21,43 @@ spring-webmvc ${org.springframework.version}
+ + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + 4.2.1.Final + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + 5.1.25 + runtime + + + + + + org.hibernate + hibernate-validator + 5.0.1.Final + @@ -38,6 +75,14 @@ runtime + + + + com.google.guava + guava + 14.0.1 + + diff --git a/spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/ClientWebConfig.java similarity index 96% rename from spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java rename to spring-all/src/main/java/org/baeldung/spring/config/ClientWebConfig.java index 945c1794fba9..f027eb73fc6a 100644 --- a/spring-all/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/ClientWebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java similarity index 97% rename from spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java rename to spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java index 81a94f1a8c10..32096c64c762 100644 --- a/spring-all/src/main/java/org/baeldung/spring/web/config/MainWebAppInitializer.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import java.util.Set; diff --git a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java new file mode 100644 index 000000000000..078d7e6f88bc --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -0,0 +1,79 @@ +package org.baeldung.spring.config; + +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.google.common.base.Preconditions; + +@Configuration +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) +@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +public class PersistenceConfig { + + @Autowired + private Environment env; + + public PersistenceConfig() { + super(); + } + + @Bean + public LocalSessionFactoryBean sessionFactory() { + final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(sessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java similarity index 92% rename from spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java rename to spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java index d60bcfe12760..640302a495c4 100644 --- a/spring-all/src/main/java/org/baeldung/spring/web/config/WebConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java index b6b6f49c16d1..7a8a0d24d8ce 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanA.java @@ -7,7 +7,7 @@ public class BeanA { @Autowired - private BeanB b; + private IBeanB b; public BeanA() { super(); diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB.java b/spring-all/src/main/java/org/baeldung/web/BeanB.java index 49e5af4ccbe9..4078fe700089 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanB.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanB.java @@ -1,9 +1,11 @@ package org.baeldung.web; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; @Component -public class BeanB { +@Transactional +public class BeanB implements IBeanB { public BeanB() { super(); diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanB.java b/spring-all/src/main/java/org/baeldung/web/IBeanB.java new file mode 100644 index 000000000000..63357980adc8 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/IBeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.web; + +public interface IBeanB { + // +} From 7245aa572acad65ae121f60330a01bcfb0d6e9fb Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 24 May 2013 23:14:34 +0300 Subject: [PATCH 084/206] bean work --- spring-all/pom.xml | 2 +- .../spring/config/MainWebAppInitializer.java | 2 +- spring-all/src/main/java/org/baeldung/web/BeanA.java | 12 ++++++++++-- .../src/main/java/org/baeldung/web/BeanB1.java | 12 ++++++++++++ .../src/main/java/org/baeldung/web/BeanB2.java | 12 ++++++++++++ .../java/org/baeldung/web/{BeanB.java => BeanC.java} | 4 ++-- .../src/main/java/org/baeldung/web/IBeanC.java | 5 +++++ .../src/main/resources/persistence-mysql.properties | 10 ++++++++++ spring-hibernate4/pom.xml | 6 +++--- 9 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/web/BeanB1.java create mode 100644 spring-all/src/main/java/org/baeldung/web/BeanB2.java rename spring-all/src/main/java/org/baeldung/web/{BeanB.java => BeanC.java} (76%) create mode 100644 spring-all/src/main/java/org/baeldung/web/IBeanC.java create mode 100644 spring-all/src/main/resources/persistence-mysql.properties diff --git a/spring-all/pom.xml b/spring-all/pom.xml index bcbd87440c54..546375faddca 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -37,7 +37,7 @@ org.hibernate hibernate-core - 4.2.1.Final + 4.2.2.Final org.javassist diff --git a/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java index 32096c64c762..6eb2dadcf275 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java @@ -23,7 +23,7 @@ public void onStartup(final ServletContext sc) throws ServletException { // Create the 'root' Spring application context final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); - root.scan("org.baeldung.spring.web.config"); + root.scan("org.baeldung.spring.config"); // root.getEnvironment().setDefaultProfiles("embedded"); // Manages the lifecycle of the root application context diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java index 7a8a0d24d8ce..4848a3ad4676 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanA.java @@ -1,16 +1,24 @@ package org.baeldung.web; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component -public class BeanA { +public class BeanA implements InitializingBean { @Autowired - private IBeanB b; + private IBeanC dependency; public BeanA() { super(); } + // + + @Override + public void afterPropertiesSet() throws Exception { + System.out.println(); + } + } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB1.java b/spring-all/src/main/java/org/baeldung/web/BeanB1.java new file mode 100644 index 000000000000..b72bce163170 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/BeanB1.java @@ -0,0 +1,12 @@ +package org.baeldung.web; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB1 implements IBeanB { + + public BeanB1() { + super(); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB2.java b/spring-all/src/main/java/org/baeldung/web/BeanB2.java new file mode 100644 index 000000000000..232521fc0b5f --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/BeanB2.java @@ -0,0 +1,12 @@ +package org.baeldung.web; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB2 implements IBeanB { + + public BeanB2() { + super(); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB.java b/spring-all/src/main/java/org/baeldung/web/BeanC.java similarity index 76% rename from spring-all/src/main/java/org/baeldung/web/BeanB.java rename to spring-all/src/main/java/org/baeldung/web/BeanC.java index 4078fe700089..1b571c1e77d6 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanB.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanC.java @@ -5,9 +5,9 @@ @Component @Transactional -public class BeanB implements IBeanB { +public class BeanC implements IBeanC { - public BeanB() { + public BeanC() { super(); } diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanC.java b/spring-all/src/main/java/org/baeldung/web/IBeanC.java new file mode 100644 index 000000000000..78adca4e72eb --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/IBeanC.java @@ -0,0 +1,5 @@ +package org.baeldung.web; + +public interface IBeanC { + // +} diff --git a/spring-all/src/main/resources/persistence-mysql.properties b/spring-all/src/main/resources/persistence-mysql.properties new file mode 100644 index 000000000000..8263b0d9accd --- /dev/null +++ b/spring-all/src/main/resources/persistence-mysql.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate4_01?createDatabaseIfNotExist=true +jdbc.user=tutorialuser +jdbc.pass=tutorialmy5ql + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=false +hibernate.hbm2ddl.auto=create-drop diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index 254d9e111826..7b8668cda10b 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -32,7 +32,7 @@ org.hibernate hibernate-core - 4.2.1.Final + 4.2.2.Final org.javassist @@ -157,7 +157,7 @@ - 3.2.2.RELEASE + 3.2.3.RELEASE 1.7.5 @@ -169,7 +169,7 @@ 1.9.5 4.2.4 - 4.2.4 + 4.2.5 1.8.0 1.8.9 From 8555b95268f16e7d3156f775c953ecfb61cc6674 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 24 May 2013 23:32:25 +0300 Subject: [PATCH 085/206] bean work --- .../org/baeldung/spring/config/CoreConfig.java | 15 +++++++++++++++ .../org/baeldung/spring/config/WebConfig.java | 2 +- .../src/main/java/org/baeldung/web/BeanA.java | 6 +++--- .../src/main/java/org/baeldung/web/BeanC.java | 2 -- .../src/main/java/org/baeldung/web/BeanD.java | 9 +++++++++ .../src/main/java/org/baeldung/web/IBeanD.java | 5 +++++ spring-all/src/main/resources/beansInXml.xml | 9 +++++++++ 7 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/web/BeanD.java create mode 100644 spring-all/src/main/java/org/baeldung/web/IBeanD.java create mode 100644 spring-all/src/main/resources/beansInXml.xml diff --git a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java new file mode 100644 index 000000000000..e202a779dbbe --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java @@ -0,0 +1,15 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ImportResource("classpath:beansInXml.xml") +public class CoreConfig extends WebMvcConfigurerAdapter { + + public CoreConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java index 640302a495c4..728a890e8f8e 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -14,6 +14,6 @@ public WebConfig() { super(); } - // API + } \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java index 4848a3ad4676..f773185bd130 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanA.java @@ -1,14 +1,13 @@ package org.baeldung.web; import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class BeanA implements InitializingBean { - @Autowired - private IBeanC dependency; + // @Autowired + // private IBeanC dependency; public BeanA() { super(); @@ -19,6 +18,7 @@ public BeanA() { @Override public void afterPropertiesSet() throws Exception { System.out.println(); + // throw new NullPointerException(); } } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanC.java b/spring-all/src/main/java/org/baeldung/web/BeanC.java index 1b571c1e77d6..c57d30179ca1 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanC.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanC.java @@ -1,10 +1,8 @@ package org.baeldung.web; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; @Component -@Transactional public class BeanC implements IBeanC { public BeanC() { diff --git a/spring-all/src/main/java/org/baeldung/web/BeanD.java b/spring-all/src/main/java/org/baeldung/web/BeanD.java new file mode 100644 index 000000000000..f1b97b8977c3 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/BeanD.java @@ -0,0 +1,9 @@ +package org.baeldung.web; + +public abstract class BeanD implements IBeanD { + + public BeanD() { + super(); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanD.java b/spring-all/src/main/java/org/baeldung/web/IBeanD.java new file mode 100644 index 000000000000..2b50038c71e0 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/IBeanD.java @@ -0,0 +1,5 @@ +package org.baeldung.web; + +public interface IBeanD { + // +} diff --git a/spring-all/src/main/resources/beansInXml.xml b/spring-all/src/main/resources/beansInXml.xml new file mode 100644 index 000000000000..26b55fc18321 --- /dev/null +++ b/spring-all/src/main/resources/beansInXml.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file From 94f9a60da1d8126b5c18639bce98fdcb85c7dfc6 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 25 May 2013 00:03:27 +0300 Subject: [PATCH 086/206] bean work --- spring-all/src/main/java/org/baeldung/web/BeanA.java | 12 ++---------- .../java/org/baeldung/web/{BeanC.java => BeanB.java} | 4 ++-- .../org/baeldung/web/{BeanB1.java => BeanC1.java} | 4 ++-- .../org/baeldung/web/{BeanB2.java => BeanC2.java} | 4 ++-- spring-all/src/main/java/org/baeldung/web/BeanD.java | 5 ++++- spring-all/src/main/resources/beansInXml.xml | 4 +++- 6 files changed, 15 insertions(+), 18 deletions(-) rename spring-all/src/main/java/org/baeldung/web/{BeanC.java => BeanB.java} (65%) rename spring-all/src/main/java/org/baeldung/web/{BeanB1.java => BeanC1.java} (64%) rename spring-all/src/main/java/org/baeldung/web/{BeanB2.java => BeanC2.java} (64%) diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java index f773185bd130..19f1fd20230a 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanA.java @@ -1,13 +1,11 @@ package org.baeldung.web; -import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; @Component -public class BeanA implements InitializingBean { +public class BeanA { - // @Autowired - // private IBeanC dependency; + private IBeanC dependency; public BeanA() { super(); @@ -15,10 +13,4 @@ public BeanA() { // - @Override - public void afterPropertiesSet() throws Exception { - System.out.println(); - // throw new NullPointerException(); - } - } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanC.java b/spring-all/src/main/java/org/baeldung/web/BeanB.java similarity index 65% rename from spring-all/src/main/java/org/baeldung/web/BeanC.java rename to spring-all/src/main/java/org/baeldung/web/BeanB.java index c57d30179ca1..4dd6a2fc7e36 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanC.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanB.java @@ -3,9 +3,9 @@ import org.springframework.stereotype.Component; @Component -public class BeanC implements IBeanC { +public class BeanB implements IBeanB { - public BeanC() { + public BeanB() { super(); } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB1.java b/spring-all/src/main/java/org/baeldung/web/BeanC1.java similarity index 64% rename from spring-all/src/main/java/org/baeldung/web/BeanB1.java rename to spring-all/src/main/java/org/baeldung/web/BeanC1.java index b72bce163170..cb3c845a0258 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanB1.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanC1.java @@ -3,9 +3,9 @@ import org.springframework.stereotype.Component; @Component -public class BeanB1 implements IBeanB { +public class BeanC1 implements IBeanC { - public BeanB1() { + public BeanC1() { super(); } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB2.java b/spring-all/src/main/java/org/baeldung/web/BeanC2.java similarity index 64% rename from spring-all/src/main/java/org/baeldung/web/BeanB2.java rename to spring-all/src/main/java/org/baeldung/web/BeanC2.java index 232521fc0b5f..f914384518a4 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanB2.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanC2.java @@ -3,9 +3,9 @@ import org.springframework.stereotype.Component; @Component -public class BeanB2 implements IBeanB { +public class BeanC2 implements IBeanB { - public BeanB2() { + public BeanC2() { super(); } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanD.java b/spring-all/src/main/java/org/baeldung/web/BeanD.java index f1b97b8977c3..04488238e533 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanD.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanD.java @@ -1,6 +1,9 @@ package org.baeldung.web; -public abstract class BeanD implements IBeanD { +import org.springframework.stereotype.Component; + +@Component +public class BeanD implements IBeanD { public BeanD() { super(); diff --git a/spring-all/src/main/resources/beansInXml.xml b/spring-all/src/main/resources/beansInXml.xml index 26b55fc18321..81ad0a9ecda9 100644 --- a/spring-all/src/main/resources/beansInXml.xml +++ b/spring-all/src/main/resources/beansInXml.xml @@ -4,6 +4,8 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> - + + + \ No newline at end of file From 343a7432298a07be428ba3fb42434ed43606cbce Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 25 May 2013 01:10:44 +0300 Subject: [PATCH 087/206] bean work --- .../org/baeldung/spring/config/PersistenceConfig.java | 3 +-- .../main/java/org/baeldung/spring/config/WebConfig.java | 7 +++++-- spring-all/src/main/java/org/baeldung/web/BeanA.java | 6 ++---- spring-all/src/main/java/org/baeldung/web/BeanB.java | 8 +++++++- spring-all/src/main/java/org/baeldung/web/BeanC2.java | 2 +- spring-all/src/main/java/org/baeldung/web/IBeanA.java | 5 +++++ spring-all/src/main/resources/beansInXml.xml | 4 +--- 7 files changed, 22 insertions(+), 13 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/web/IBeanA.java diff --git a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java index 078d7e6f88bc..4bc4739ccdb7 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @@ -18,7 +17,7 @@ import com.google.common.base.Preconditions; -@Configuration +// @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) diff --git a/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java index 728a890e8f8e..c69ef21b0c24 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -1,5 +1,7 @@ package org.baeldung.spring.config; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @@ -10,10 +12,11 @@ @ComponentScan("org.baeldung.web") public class WebConfig extends WebMvcConfigurerAdapter { + @Autowired + BeanFactory beanFactory; + public WebConfig() { super(); } - - } \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java index 19f1fd20230a..96cc715ec78c 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanA.java @@ -1,16 +1,14 @@ package org.baeldung.web; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; @Component +@Transactional public class BeanA { - private IBeanC dependency; - public BeanA() { super(); } - // - } diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB.java b/spring-all/src/main/java/org/baeldung/web/BeanB.java index 4dd6a2fc7e36..53a3ef0b2f64 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanB.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanB.java @@ -1,9 +1,15 @@ package org.baeldung.web; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; @Component -public class BeanB implements IBeanB { +@Transactional +public class BeanB { + + @Autowired + private BeanA beanA; public BeanB() { super(); diff --git a/spring-all/src/main/java/org/baeldung/web/BeanC2.java b/spring-all/src/main/java/org/baeldung/web/BeanC2.java index f914384518a4..ed38a809cf5f 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanC2.java +++ b/spring-all/src/main/java/org/baeldung/web/BeanC2.java @@ -3,7 +3,7 @@ import org.springframework.stereotype.Component; @Component -public class BeanC2 implements IBeanB { +public class BeanC2 implements IBeanC { public BeanC2() { super(); diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanA.java b/spring-all/src/main/java/org/baeldung/web/IBeanA.java new file mode 100644 index 000000000000..91d770ce73d3 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/IBeanA.java @@ -0,0 +1,5 @@ +package org.baeldung.web; + +public interface IBeanA { + // +} diff --git a/spring-all/src/main/resources/beansInXml.xml b/spring-all/src/main/resources/beansInXml.xml index 81ad0a9ecda9..9cd3282179bd 100644 --- a/spring-all/src/main/resources/beansInXml.xml +++ b/spring-all/src/main/resources/beansInXml.xml @@ -4,8 +4,6 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> - - - + \ No newline at end of file From f5990cb42b0b507e9c20c081012c94b3348acadb Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 25 May 2013 01:14:38 +0300 Subject: [PATCH 088/206] bean work --- .../src/main/java/org/baeldung/web/BeanA.java | 14 -------- .../web/{IBeanA.java => IServiceA.java} | 2 +- .../main/java/org/baeldung/web/ServiceA.java | 24 ++++++++++++++ .../web/{BeanB.java => ServiceB.java} | 16 +++++++--- .../src/main/java/org/baeldung/web/Setup.java | 32 +++++++++++++++++++ 5 files changed, 68 insertions(+), 20 deletions(-) delete mode 100644 spring-all/src/main/java/org/baeldung/web/BeanA.java rename spring-all/src/main/java/org/baeldung/web/{IBeanA.java => IServiceA.java} (55%) create mode 100644 spring-all/src/main/java/org/baeldung/web/ServiceA.java rename spring-all/src/main/java/org/baeldung/web/{BeanB.java => ServiceB.java} (50%) create mode 100644 spring-all/src/main/java/org/baeldung/web/Setup.java diff --git a/spring-all/src/main/java/org/baeldung/web/BeanA.java b/spring-all/src/main/java/org/baeldung/web/BeanA.java deleted file mode 100644 index 96cc715ec78c..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/BeanA.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.baeldung.web; - -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -@Component -@Transactional -public class BeanA { - - public BeanA() { - super(); - } - -} diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanA.java b/spring-all/src/main/java/org/baeldung/web/IServiceA.java similarity index 55% rename from spring-all/src/main/java/org/baeldung/web/IBeanA.java rename to spring-all/src/main/java/org/baeldung/web/IServiceA.java index 91d770ce73d3..0461d5293ff8 100644 --- a/spring-all/src/main/java/org/baeldung/web/IBeanA.java +++ b/spring-all/src/main/java/org/baeldung/web/IServiceA.java @@ -1,5 +1,5 @@ package org.baeldung.web; -public interface IBeanA { +public interface IServiceA { // } diff --git a/spring-all/src/main/java/org/baeldung/web/ServiceA.java b/spring-all/src/main/java/org/baeldung/web/ServiceA.java new file mode 100644 index 000000000000..47afde94c889 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/ServiceA.java @@ -0,0 +1,24 @@ +package org.baeldung.web; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Transactional +public class ServiceA implements IServiceA { + + @Autowired + private ServiceB serviceB; + + public ServiceA() { + super(); + } + + // + + public void testA() { + System.out.println(); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/web/BeanB.java b/spring-all/src/main/java/org/baeldung/web/ServiceB.java similarity index 50% rename from spring-all/src/main/java/org/baeldung/web/BeanB.java rename to spring-all/src/main/java/org/baeldung/web/ServiceB.java index 53a3ef0b2f64..65b4215cc407 100644 --- a/spring-all/src/main/java/org/baeldung/web/BeanB.java +++ b/spring-all/src/main/java/org/baeldung/web/ServiceB.java @@ -1,18 +1,24 @@ package org.baeldung.web; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -@Component +@Service @Transactional -public class BeanB { +public class ServiceB { @Autowired - private BeanA beanA; + private IServiceA serviceA; - public BeanB() { + public ServiceB() { super(); } + // + + public void testB() { + System.out.println(); + } + } diff --git a/spring-all/src/main/java/org/baeldung/web/Setup.java b/spring-all/src/main/java/org/baeldung/web/Setup.java new file mode 100644 index 000000000000..653609e006da --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/web/Setup.java @@ -0,0 +1,32 @@ +package org.baeldung.web; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.stereotype.Component; + +@Component +public class Setup implements ApplicationListener { + + private boolean setupDone; + + @Autowired + IServiceA serviceA; + + @Autowired + ServiceB serviceB; + + public Setup() { + super(); + } + + // + + @Override + public final void onApplicationEvent(final ContextRefreshedEvent event) { + if (!setupDone) { + // + } + } + +} From 59bd37ec1040f08cd3ecb866137964a0feb47b1f Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 25 May 2013 15:59:25 +0300 Subject: [PATCH 089/206] bean work --- .../org/baeldung/spring/config/PersistenceConfig.java | 3 ++- .../org/baeldung/web/{IBeanB.java => IServiceB.java} | 2 +- .../src/main/java/org/baeldung/web/ServiceA.java | 6 ++---- .../src/main/java/org/baeldung/web/ServiceB.java | 6 +----- spring-all/src/main/java/org/baeldung/web/Setup.java | 10 +++++----- 5 files changed, 11 insertions(+), 16 deletions(-) rename spring-all/src/main/java/org/baeldung/web/{IBeanB.java => IServiceB.java} (55%) diff --git a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java index 4bc4739ccdb7..078d7e6f88bc 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @@ -17,7 +18,7 @@ import com.google.common.base.Preconditions; -// @Configuration +@Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanB.java b/spring-all/src/main/java/org/baeldung/web/IServiceB.java similarity index 55% rename from spring-all/src/main/java/org/baeldung/web/IBeanB.java rename to spring-all/src/main/java/org/baeldung/web/IServiceB.java index 63357980adc8..faf048cde5f0 100644 --- a/spring-all/src/main/java/org/baeldung/web/IBeanB.java +++ b/spring-all/src/main/java/org/baeldung/web/IServiceB.java @@ -1,5 +1,5 @@ package org.baeldung.web; -public interface IBeanB { +public interface IServiceB { // } diff --git a/spring-all/src/main/java/org/baeldung/web/ServiceA.java b/spring-all/src/main/java/org/baeldung/web/ServiceA.java index 47afde94c889..deee4c6e5580 100644 --- a/spring-all/src/main/java/org/baeldung/web/ServiceA.java +++ b/spring-all/src/main/java/org/baeldung/web/ServiceA.java @@ -6,12 +6,10 @@ @Service @Transactional -public class ServiceA implements IServiceA { +public class ServiceA { @Autowired - private ServiceB serviceB; - - public ServiceA() { + public ServiceA(final IServiceB serviceB) { super(); } diff --git a/spring-all/src/main/java/org/baeldung/web/ServiceB.java b/spring-all/src/main/java/org/baeldung/web/ServiceB.java index 65b4215cc407..48ff0f264829 100644 --- a/spring-all/src/main/java/org/baeldung/web/ServiceB.java +++ b/spring-all/src/main/java/org/baeldung/web/ServiceB.java @@ -1,15 +1,11 @@ package org.baeldung.web; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional -public class ServiceB { - - @Autowired - private IServiceA serviceA; +public class ServiceB implements IServiceB { public ServiceB() { super(); diff --git a/spring-all/src/main/java/org/baeldung/web/Setup.java b/spring-all/src/main/java/org/baeldung/web/Setup.java index 653609e006da..f04135d807f6 100644 --- a/spring-all/src/main/java/org/baeldung/web/Setup.java +++ b/spring-all/src/main/java/org/baeldung/web/Setup.java @@ -3,18 +3,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; -import org.springframework.stereotype.Component; -@Component +// @Component public class Setup implements ApplicationListener { private boolean setupDone; @Autowired - IServiceA serviceA; + ServiceA serviceA; @Autowired - ServiceB serviceB; + IServiceB serviceB; public Setup() { super(); @@ -25,7 +24,8 @@ public Setup() { @Override public final void onApplicationEvent(final ContextRefreshedEvent event) { if (!setupDone) { - // + System.out.println(); + setupDone = true; } } From a57fec094aa39dc386532804b1c0e12a9ade0cd1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 26 May 2013 18:42:50 +0300 Subject: [PATCH 090/206] spring rest work --- spring-security-rest/.classpath | 31 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-rest/.gitignore | 13 ++ spring-security-rest/.project | 59 ++++++ spring-security-rest/.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 +++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 5 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-rest/.springBeans | 14 ++ spring-security-rest/README.md | 3 + spring-security-rest/pom.xml | 192 ++++++++++++++++++ .../security/CustomLogoutSuccessHandler.java | 29 +++ .../spring/web/config/ClientWebConfig.java | 42 ++++ .../spring/web/config/SecSecurityConfig.java | 14 ++ .../src/main/resources/logback.xml | 20 ++ .../src/main/resources/webSecurityConfig.xml | 41 ++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../main/webapp/WEB-INF/view/anonymous.jsp | 10 + .../src/main/webapp/WEB-INF/view/homepage.jsp | 9 + .../src/main/webapp/WEB-INF/view/login.jsp | 26 +++ .../src/main/webapp/WEB-INF/web.xml | 52 +++++ .../src/test/resources/.gitignore | 13 ++ 29 files changed, 775 insertions(+) create mode 100644 spring-security-rest/.classpath create mode 100644 spring-security-rest/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-rest/.gitignore create mode 100644 spring-security-rest/.project create mode 100644 spring-security-rest/.settings/.jsdtscope create mode 100644 spring-security-rest/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-rest/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-rest/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-rest/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-rest/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-rest/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-rest/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-rest/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-rest/.springBeans create mode 100644 spring-security-rest/README.md create mode 100644 spring-security-rest/pom.xml create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java create mode 100644 spring-security-rest/src/main/resources/logback.xml create mode 100644 spring-security-rest/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-rest/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp create mode 100644 spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp create mode 100644 spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp create mode 100644 spring-security-rest/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-rest/src/test/resources/.gitignore diff --git a/spring-security-rest/.classpath b/spring-security-rest/.classpath new file mode 100644 index 000000000000..5dea19367768 --- /dev/null +++ b/spring-security-rest/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-rest/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-rest/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-rest/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-rest/.gitignore b/spring-security-rest/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-rest/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-rest/.project b/spring-security-rest/.project new file mode 100644 index 000000000000..67be91451e64 --- /dev/null +++ b/spring-security-rest/.project @@ -0,0 +1,59 @@ + + + spring-security-rest + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-security-rest/.settings/.jsdtscope b/spring-security-rest/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-rest/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-rest/.settings/org.eclipse.jdt.core.prefs b/spring-security-rest/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..723e5b12451a --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-rest/.settings/org.eclipse.jdt.ui.prefs b/spring-security-rest/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-rest/.settings/org.eclipse.m2e.core.prefs b/spring-security-rest/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-rest/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-rest/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-rest/.settings/org.eclipse.wst.common.component b/spring-security-rest/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..6782a0c5c740 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-rest/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-rest/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..b46bc511b943 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-rest/.settings/org.eclipse.wst.validation.prefs b/spring-security-rest/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-rest/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-rest/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-rest/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-rest/.springBeans b/spring-security-rest/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-security-rest/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-security-rest/README.md b/spring-security-rest/README.md new file mode 100644 index 000000000000..7cc97242ec04 --- /dev/null +++ b/spring-security-rest/README.md @@ -0,0 +1,3 @@ +Spring Security Login +========= + diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml new file mode 100644 index 000000000000..9b5cfbdace28 --- /dev/null +++ b/spring-security-rest/pom.xml @@ -0,0 +1,192 @@ + + 4.0.0 + org.baeldung + spring-security-rest + 0.1-SNAPSHOT + + spring-security-rest + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 1.7.5 + 1.0.11 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + + \ No newline at end of file diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java b/spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java new file mode 100644 index 000000000000..4d19744033d0 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java @@ -0,0 +1,29 @@ +package org.baeldung.spring.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; +import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; + +public class CustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler { + + public CustomLogoutSuccessHandler() { + super(); + } + + // API + + @Override + public void onLogoutSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { + final String refererUrl = request.getHeader("Referer"); + System.out.println(refererUrl); + + super.onLogoutSuccess(request, response, authentication); + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java new file mode 100644 index 000000000000..316759b24b3a --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java @@ -0,0 +1,42 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/anonymous.html"); + + registry.addViewController("/login.html"); + registry.addViewController("/homepage.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java new file mode 100644 index 000000000000..65a571c71589 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.web.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-rest/src/main/resources/logback.xml b/spring-security-rest/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-security-rest/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-rest/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..e2b63fe45820 --- /dev/null +++ b/spring-security-rest/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-rest/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-rest/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp new file mode 100644 index 000000000000..d4e9c0289b29 --- /dev/null +++ b/spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp @@ -0,0 +1,10 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + +

Anonymous page

+ + ">To Login + + \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp new file mode 100644 index 000000000000..5504d2f134ee --- /dev/null +++ b/spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp @@ -0,0 +1,9 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + +

This is the body of the sample view

+ ">Logout + + \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp new file mode 100644 index 000000000000..013ceccb4e4d --- /dev/null +++ b/spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp @@ -0,0 +1,26 @@ + + + + +

Login

+ +
+ + + + + + + + + + + + + +
User:
Password:
+ +
+ + + \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/web.xml b/spring-security-rest/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..6274cdd9fe95 --- /dev/null +++ b/spring-security-rest/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + + + + \ No newline at end of file diff --git a/spring-security-rest/src/test/resources/.gitignore b/spring-security-rest/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-rest/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From 9ca6724a17a7e829af232cdf414769cbfe131d84 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 26 May 2013 18:44:06 +0300 Subject: [PATCH 091/206] minor cleanup --- .../spring/web/config/SecSecurityConfig.java | 6 +- .../src/main/webapp/WEB-INF/web.xml | 78 +++++++++---------- 2 files changed, 41 insertions(+), 43 deletions(-) diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java index 65a571c71589..a21a05c17d2d 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java @@ -7,8 +7,8 @@ @ImportResource({ "classpath:webSecurityConfig.xml" }) public class SecSecurityConfig { - public SecSecurityConfig() { - super(); - } + public SecSecurityConfig() { + super(); + } } diff --git a/spring-security-rest/src/main/webapp/WEB-INF/web.xml b/spring-security-rest/src/main/webapp/WEB-INF/web.xml index 6274cdd9fe95..aa8d47fe8680 100644 --- a/spring-security-rest/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-rest/src/main/webapp/WEB-INF/web.xml @@ -1,52 +1,50 @@ - + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> - Spring MVC Application + Spring MVC Application - - - contextClass - + + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring.web.config - + + + contextConfigLocation + org.baeldung.spring.web.config + - - org.springframework.web.context.ContextLoaderListener - + + org.springframework.web.context.ContextLoaderListener + - - - mvc - org.springframework.web.servlet.DispatcherServlet - 1 - - - mvc - / - + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + - - - springSecurityFilterChain - org.springframework.web.filter.DelegatingFilterProxy - - - springSecurityFilterChain - /* - + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + - - - + + + \ No newline at end of file From 74bafb99a9e7325cad578171e96713f3e17977ee Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 26 May 2013 18:51:36 +0300 Subject: [PATCH 092/206] security work --- .../{web => }/config/ClientWebConfig.java | 2 +- .../{web => }/config/SecSecurityConfig.java | 4 +- .../security/CustomLogoutSuccessHandler.java | 29 --------- ...uestAwareAuthenticationSuccessHandler.java | 48 ++++++++++++++ .../RestAuthenticationEntryPoint.java | 19 ++++++ .../src/main/resources/webSecurityConfig.xml | 62 ++++++++----------- .../src/main/webapp/WEB-INF/web.xml | 2 +- 7 files changed, 99 insertions(+), 67 deletions(-) rename spring-security-rest/src/main/java/org/baeldung/spring/{web => }/config/ClientWebConfig.java (96%) rename spring-security-rest/src/main/java/org/baeldung/spring/{web => }/config/SecSecurityConfig.java (66%) delete mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java similarity index 96% rename from spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java rename to spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java index 316759b24b3a..d0c33bd135ca 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java similarity index 66% rename from spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java rename to spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java index a21a05c17d2d..d38c304d9a7c 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java @@ -1,10 +1,12 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource({ "classpath:webSecurityConfig.xml" }) +@ComponentScan("org.baeldung.spring.security") public class SecSecurityConfig { public SecSecurityConfig() { diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java b/spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java deleted file mode 100644 index 4d19744033d0..000000000000 --- a/spring-security-rest/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.baeldung.spring.security; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.security.core.Authentication; -import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; -import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; - -public class CustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler { - - public CustomLogoutSuccessHandler() { - super(); - } - - // API - - @Override - public void onLogoutSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { - final String refererUrl = request.getHeader("Referer"); - System.out.println(refererUrl); - - super.onLogoutSuccess(request, response, authentication); - } - -} diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java new file mode 100644 index 000000000000..82272292de37 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java @@ -0,0 +1,48 @@ +package org.baeldung.spring.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; +import org.springframework.security.web.savedrequest.HttpSessionRequestCache; +import org.springframework.security.web.savedrequest.RequestCache; +import org.springframework.security.web.savedrequest.SavedRequest; +import org.springframework.util.StringUtils; + +public class MySavedRequestAwareAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { + + private RequestCache requestCache = new HttpSessionRequestCache(); + + @Override + public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws ServletException, IOException { + final SavedRequest savedRequest = requestCache.getRequest(request, response); + + if (savedRequest == null) { + super.onAuthenticationSuccess(request, response, authentication); + + return; + } + final String targetUrlParameter = getTargetUrlParameter(); + if (isAlwaysUseDefaultTargetUrl() || (targetUrlParameter != null && StringUtils.hasText(request.getParameter(targetUrlParameter)))) { + requestCache.removeRequest(request, response); + super.onAuthenticationSuccess(request, response, authentication); + + return; + } + + clearAuthenticationAttributes(request); + + // Use the DefaultSavedRequest URL + // final String targetUrl = savedRequest.getRedirectUrl(); + // logger.debug("Redirecting to DefaultSavedRequest Url: " + targetUrl); + // getRedirectStrategy().sendRedirect(request, response, targetUrl); + } + + public void setRequestCache(final RequestCache requestCache) { + this.requestCache = requestCache; + } +} diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java b/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java new file mode 100644 index 000000000000..53f2a736e0a5 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java @@ -0,0 +1,19 @@ +package org.baeldung.spring.security; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +@Component +public final class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { + + @Override + public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException { + response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); + } +} \ No newline at end of file diff --git a/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-rest/src/main/resources/webSecurityConfig.xml index e2b63fe45820..b40b5390ba74 100644 --- a/spring-security-rest/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest/src/main/resources/webSecurityConfig.xml @@ -1,41 +1,33 @@ - + - - - - - - - - + + - - - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/web.xml b/spring-security-rest/src/main/webapp/WEB-INF/web.xml index aa8d47fe8680..3238896d4aa7 100644 --- a/spring-security-rest/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-rest/src/main/webapp/WEB-INF/web.xml @@ -15,7 +15,7 @@ contextConfigLocation - org.baeldung.spring.web.config + org.baeldung.spring.config From 3572f7ecd53bb0b82d7fdb19bf13d04803ea6d5f Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 27 May 2013 00:25:50 +0300 Subject: [PATCH 093/206] security work --- spring-security-rest/.springBeans | 2 +- .../spring/config/ClientWebConfig.java | 25 ------------------ .../RestAuthenticationEntryPoint.java | 4 +++ .../src/main/resources/webSecurityConfig.xml | 4 +-- .../{mvc-servlet.xml => api-servlet.xml} | 0 .../main/webapp/WEB-INF/view/anonymous.jsp | 10 ------- .../src/main/webapp/WEB-INF/view/homepage.jsp | 9 ------- .../src/main/webapp/WEB-INF/view/login.jsp | 26 ------------------- .../src/main/webapp/WEB-INF/web.xml | 6 ++--- 9 files changed, 10 insertions(+), 76 deletions(-) rename spring-security-rest/src/main/webapp/WEB-INF/{mvc-servlet.xml => api-servlet.xml} (100%) delete mode 100644 spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp delete mode 100644 spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp delete mode 100644 spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-rest/.springBeans b/spring-security-rest/.springBeans index 7623a7e88836..d11fb034bdc0 100644 --- a/spring-security-rest/.springBeans +++ b/spring-security-rest/.springBeans @@ -7,7 +7,7 @@ - src/main/webapp/WEB-INF/mvc-servlet.xml + src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java index d0c33bd135ca..1a87fd8a09d7 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java @@ -1,13 +1,8 @@ package org.baeldung.spring.config; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.servlet.view.JstlView; @EnableWebMvc @Configuration @@ -19,24 +14,4 @@ public ClientWebConfig() { // API - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); - - registry.addViewController("/anonymous.html"); - - registry.addViewController("/login.html"); - registry.addViewController("/homepage.html"); - } - - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); - - return bean; - } } \ No newline at end of file diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java b/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java index 53f2a736e0a5..9e6f4da1e084 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java @@ -9,6 +9,9 @@ import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.stereotype.Component; +/** + * The Entry Point will not redirect to any sort of Login - it will return the 401 + */ @Component public final class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { @@ -16,4 +19,5 @@ public final class RestAuthenticationEntryPoint implements AuthenticationEntryPo public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException { response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); } + } \ No newline at end of file diff --git a/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-rest/src/main/resources/webSecurityConfig.xml index b40b5390ba74..a0aeae9e6ae6 100644 --- a/spring-security-rest/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest/src/main/resources/webSecurityConfig.xml @@ -7,8 +7,8 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - - + + diff --git a/spring-security-rest/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-rest/src/main/webapp/WEB-INF/api-servlet.xml similarity index 100% rename from spring-security-rest/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-rest/src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp deleted file mode 100644 index d4e9c0289b29..000000000000 --- a/spring-security-rest/src/main/webapp/WEB-INF/view/anonymous.jsp +++ /dev/null @@ -1,10 +0,0 @@ -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - - - - -

Anonymous page

- - ">To Login - - \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp deleted file mode 100644 index 5504d2f134ee..000000000000 --- a/spring-security-rest/src/main/webapp/WEB-INF/view/homepage.jsp +++ /dev/null @@ -1,9 +0,0 @@ -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - - - - -

This is the body of the sample view

- ">Logout - - \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp deleted file mode 100644 index 013ceccb4e4d..000000000000 --- a/spring-security-rest/src/main/webapp/WEB-INF/view/login.jsp +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

Login

- -
- - - - - - - - - - - - - -
User:
Password:
- -
- - - \ No newline at end of file diff --git a/spring-security-rest/src/main/webapp/WEB-INF/web.xml b/spring-security-rest/src/main/webapp/WEB-INF/web.xml index 3238896d4aa7..d7e554666d10 100644 --- a/spring-security-rest/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-rest/src/main/webapp/WEB-INF/web.xml @@ -24,13 +24,13 @@ - mvc + api org.springframework.web.servlet.DispatcherServlet 1 - mvc - / + api + /api/* From f9604dec46f3d1938644b97c5956f3b2748a8377 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 27 May 2013 01:11:29 +0300 Subject: [PATCH 094/206] config work --- .../src/main/resources/webSecurityConfig.xml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-rest/src/main/resources/webSecurityConfig.xml index a0aeae9e6ae6..ebb73828c462 100644 --- a/spring-security-rest/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest/src/main/resources/webSecurityConfig.xml @@ -10,15 +10,11 @@ - + - - - - From 3f1a9ae5e1d25181c5c6efb2341d1d0484e43efd Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 12:25:46 +0300 Subject: [PATCH 095/206] minor doc work --- spring-all/README.md | 7 +++++-- spring-hibernate3/README.md | 14 +++++++++++++- spring-hibernate4/README.md | 14 +++++++++++++- spring-mvc/README.md | 5 ++++- spring-security-basic-auth/README.md | 4 +++- spring-security-login/README.md | 6 +++++- 6 files changed, 43 insertions(+), 7 deletions(-) diff --git a/spring-all/README.md b/spring-all/README.md index 1abc096086ed..d3e07f338d80 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -1,3 +1,6 @@ -[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) ========= - +This project is used to replicate Spring Exceptions only. +Relevant articles: +- [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) +- [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) +- [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) diff --git a/spring-hibernate3/README.md b/spring-hibernate3/README.md index 89dd04db8206..6dcc602ef07d 100644 --- a/spring-hibernate3/README.md +++ b/spring-hibernate3/README.md @@ -1,3 +1,15 @@ -Hibernate 3 with Spring ========= +Relevant Article: +- [Hibernate 3 with Spring](http://www.baeldung.com/hibernate3-spring) + + +Quick Start + +``` +git clone git://github.com/eugenp/REST.git +cd REST +mvn install +mvn cargo:run +``` +- note: starts on port 8082 diff --git a/spring-hibernate4/README.md b/spring-hibernate4/README.md index 12eb079c88b1..3c48826a2a4d 100644 --- a/spring-hibernate4/README.md +++ b/spring-hibernate4/README.md @@ -1,3 +1,15 @@ -Hibernate 4 with Spring ========= +Relevant Article: +- [Hibernate 4 with Spring](http://www.baeldung.com/hibernate-4-spring) + + +Quick Start + +``` +git clone git://github.com/eugenp/REST.git +cd REST +mvn install +mvn cargo:run +``` +- note: starts on port 8082 diff --git a/spring-mvc/README.md b/spring-mvc/README.md index 1abc096086ed..857e0007da57 100644 --- a/spring-mvc/README.md +++ b/spring-mvc/README.md @@ -1,3 +1,6 @@ -[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) ========= +Relevant Articles: +- [Spring @RequestMapping](http://www.baeldung.com/spring-requestmapping) + + diff --git a/spring-security-basic-auth/README.md b/spring-security-basic-auth/README.md index 7cc97242ec04..d013b51e1807 100644 --- a/spring-security-basic-auth/README.md +++ b/spring-security-basic-auth/README.md @@ -1,3 +1,5 @@ -Spring Security Login ========= +Relevant Article: +- [Spring Security – security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) + diff --git a/spring-security-login/README.md b/spring-security-login/README.md index 7cc97242ec04..3fc9941d1edf 100644 --- a/spring-security-login/README.md +++ b/spring-security-login/README.md @@ -1,3 +1,7 @@ -Spring Security Login ========= +Relevant Articles: +- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) +- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) + + From 1515377c48050f1c3325e93047d8da148c755ca8 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 12:29:35 +0300 Subject: [PATCH 096/206] minor doc work --- spring-jpa/README.md | 4 +++- spring-mvc-xml/README.md | 4 +++- spring-security-rest/README.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/spring-jpa/README.md b/spring-jpa/README.md index 12eb079c88b1..7f5cdda2e232 100644 --- a/spring-jpa/README.md +++ b/spring-jpa/README.md @@ -1,3 +1,5 @@ -Hibernate 4 with Spring +JPA with Spring ========= +Relevant Articles: +- \ No newline at end of file diff --git a/spring-mvc-xml/README.md b/spring-mvc-xml/README.md index 1abc096086ed..b67f11e4e7aa 100644 --- a/spring-mvc-xml/README.md +++ b/spring-mvc-xml/README.md @@ -1,3 +1,5 @@ -[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) +Spring MVC Tutorial ========= +Relevant Articles: +- \ No newline at end of file diff --git a/spring-security-rest/README.md b/spring-security-rest/README.md index 7cc97242ec04..a7dd66cfbadc 100644 --- a/spring-security-rest/README.md +++ b/spring-security-rest/README.md @@ -1,3 +1,5 @@ -Spring Security Login +Spring Security for REST ========= +Relevant Articles: +- [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) \ No newline at end of file From 66f6623c28829f5c50b8e7fe2763d763bf1b0dc0 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:07:51 +0300 Subject: [PATCH 097/206] rest security work --- ...edRequestAwareAuthenticationSuccessHandler.java | 2 +- .../security/RestAuthenticationEntryPoint.java | 2 +- .../baeldung/spring/config/SecSecurityConfig.java | 2 +- .../java/org/baeldung/spring/config/WebConfig.java | 14 ++++++++++++++ .../org/baeldung/web/controller/FooController.java | 8 ++++++++ .../src/main/java/org/baeldung/web/dto/Foo.java | 5 +++++ .../src/main/resources/webSecurityConfig.xml | 2 +- 7 files changed, 31 insertions(+), 4 deletions(-) rename spring-security-rest/src/main/java/org/baeldung/{spring => }/security/MySavedRequestAwareAuthenticationSuccessHandler.java (98%) rename spring-security-rest/src/main/java/org/baeldung/{spring => }/security/RestAuthenticationEntryPoint.java (95%) create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-rest/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java similarity index 98% rename from spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java rename to spring-security-rest/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java index 82272292de37..698052fa2b00 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/security/MySavedRequestAwareAuthenticationSuccessHandler.java +++ b/spring-security-rest/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.security; +package org.baeldung.security; import java.io.IOException; diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java b/spring-security-rest/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java similarity index 95% rename from spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java rename to spring-security-rest/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java index 9e6f4da1e084..77aa32ff979e 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/security/RestAuthenticationEntryPoint.java +++ b/spring-security-rest/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.security; +package org.baeldung.security; import java.io.IOException; diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java index d38c304d9a7c..8d5dfb04092e 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java @@ -6,7 +6,7 @@ @Configuration @ImportResource({ "classpath:webSecurityConfig.xml" }) -@ComponentScan("org.baeldung.spring.security") +@ComponentScan("org.baeldung.security") public class SecSecurityConfig { public SecSecurityConfig() { diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java new file mode 100644 index 000000000000..33efc93b2b44 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.web") +public class WebConfig { + + public WebConfig() { + super(); + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java new file mode 100644 index 000000000000..e4507df59c68 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java @@ -0,0 +1,8 @@ +package org.baeldung.web.controller; + +import org.springframework.stereotype.Controller; + +@Controller +public class FooController { + // +} diff --git a/spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java new file mode 100644 index 000000000000..cb12846cd751 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java @@ -0,0 +1,5 @@ +package org.baeldung.web.dto; + +public class Foo { + +} diff --git a/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-rest/src/main/resources/webSecurityConfig.xml index ebb73828c462..d3f8f6cfaf03 100644 --- a/spring-security-rest/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest/src/main/resources/webSecurityConfig.xml @@ -15,7 +15,7 @@
- + From 279ccd2a5526eb6e904b07cd93b6c2a95d9fadbc Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:17:23 +0300 Subject: [PATCH 098/206] security and rest work --- .../.settings/org.eclipse.jdt.core.prefs | 2 +- spring-security-rest/pom.xml | 8 ++++ .../persistence/service/FooService.java | 23 ++++++++++ .../spring/config/PersistenceConfig.java | 14 ++++++ .../web/controller/FooController.java | 44 ++++++++++++++++++- .../web/controller/ResourceCreated.java | 35 +++++++++++++++ .../controller/SingleResourceRetrieved.java | 29 ++++++++++++ 7 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 spring-security-rest/src/main/java/org/baeldung/persistence/service/FooService.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/spring/config/PersistenceConfig.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java diff --git a/spring-security-rest/.settings/org.eclipse.jdt.core.prefs b/spring-security-rest/.settings/org.eclipse.jdt.core.prefs index 723e5b12451a..df8135651462 100644 --- a/spring-security-rest/.settings/org.eclipse.jdt.core.prefs +++ b/spring-security-rest/.settings/org.eclipse.jdt.core.prefs @@ -42,7 +42,7 @@ org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml index 9b5cfbdace28..8c41c2fece39 100644 --- a/spring-security-rest/pom.xml +++ b/spring-security-rest/pom.xml @@ -88,6 +88,14 @@ runtime
+ + + + com.google.guava + guava + 14.0.1 + + diff --git a/spring-security-rest/src/main/java/org/baeldung/persistence/service/FooService.java b/spring-security-rest/src/main/java/org/baeldung/persistence/service/FooService.java new file mode 100644 index 000000000000..02db7a733a6b --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/persistence/service/FooService.java @@ -0,0 +1,23 @@ +package org.baeldung.persistence.service; + +import org.baeldung.web.dto.Foo; +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + public FooService() { + super(); + } + + // API + + public Foo getById(final Long id) { + return null; + } + + public Long create(final Foo resource) { + return null; + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/config/PersistenceConfig.java new file mode 100644 index 000000000000..913c5d26ceb9 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.persistence") +public class PersistenceConfig { + + public PersistenceConfig() { + super(); + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java index e4507df59c68..ce3b59e82528 100644 --- a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java @@ -1,8 +1,50 @@ package org.baeldung.web.controller; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.baeldung.persistence.service.FooService; +import org.baeldung.web.dto.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import com.google.common.base.Preconditions; @Controller public class FooController { - // + + @Autowired + private FooService service; + + @Autowired + private ApplicationEventPublisher eventPublisher; + + // API + + @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { + final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); + + eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); + return resourceById; + } + + @RequestMapping(value = "admin/foo", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { + Preconditions.checkNotNull(resource); + final Long idOfCreatedResource = service.create(resource); + + eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); + } + } diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java new file mode 100644 index 000000000000..9baa0e2df823 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java @@ -0,0 +1,35 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationEvent; + +public class ResourceCreated extends ApplicationEvent { + private final HttpServletResponse response; + private final HttpServletRequest request; + private final long idOfCreatedResource; + + public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfCreatedResource) { + super(source); + + this.request = request; + this.response = response; + this.idOfCreatedResource = idOfCreatedResource; + } + + // API + + public HttpServletResponse getResponse() { + return response; + } + + public HttpServletRequest getRequest() { + return request; + } + + public long getIdOfCreatedResource() { + return idOfCreatedResource; + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java new file mode 100644 index 000000000000..3de791810549 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java @@ -0,0 +1,29 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationEvent; + +public class SingleResourceRetrieved extends ApplicationEvent { + private final HttpServletResponse response; + private final HttpServletRequest request; + + public SingleResourceRetrieved(final Object source, final HttpServletRequest request, final HttpServletResponse response) { + super(source); + + this.request = request; + this.response = response; + } + + // API + + public HttpServletResponse getResponse() { + return response; + } + + public HttpServletRequest getRequest() { + return request; + } + +} From 8b409e07a60175ca5cce62808baf56f0168c8943 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:30:54 +0300 Subject: [PATCH 099/206] discoverability work --- .../web/controller/ResourceCreated.java | 10 +++--- ...esourceCreatedDiscoverabilityListener.java | 35 +++++++++++++++++++ ...ourceRetrievedDiscoverabilityListener.java | 32 +++++++++++++++++ 3 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java index 9baa0e2df823..a67788810161 100644 --- a/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java @@ -8,14 +8,14 @@ public class ResourceCreated extends ApplicationEvent { private final HttpServletResponse response; private final HttpServletRequest request; - private final long idOfCreatedResource; + private final long idOfNewResource; - public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfCreatedResource) { + public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { super(source); this.request = request; this.response = response; - this.idOfCreatedResource = idOfCreatedResource; + this.idOfNewResource = idOfNewResource; } // API @@ -28,8 +28,8 @@ public HttpServletRequest getRequest() { return request; } - public long getIdOfCreatedResource() { - return idOfCreatedResource; + public long getIdOfNewResource() { + return idOfNewResource; } } diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java new file mode 100644 index 000000000000..8d19ef82fc63 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java @@ -0,0 +1,35 @@ +package org.baeldung.web.controller; + +import java.net.URI; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; +import org.springframework.web.util.UriTemplate; + +import com.google.common.base.Preconditions; +import com.google.common.net.HttpHeaders; + +@Component +class ResourceCreatedDiscoverabilityListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final ResourceCreated resourceCreatedEvent) { + Preconditions.checkNotNull(resourceCreatedEvent); + + final HttpServletRequest request = resourceCreatedEvent.getRequest(); + final HttpServletResponse response = resourceCreatedEvent.getResponse(); + final long idOfNewResource = resourceCreatedEvent.getIdOfNewResource(); + + addLinkHeaderOnResourceCreation(request, response, idOfNewResource); + } + + void addLinkHeaderOnResourceCreation(final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { + final String requestUrl = request.getRequestURL().toString(); + final URI uri = new UriTemplate("{requestUrl}/{idOfNewResource}").expand(requestUrl, idOfNewResource); + response.setHeader(HttpHeaders.LOCATION, uri.toASCIIString()); + } + +} \ No newline at end of file diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java new file mode 100644 index 000000000000..b7384b0196b3 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java @@ -0,0 +1,32 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +import com.google.common.base.Preconditions; + +@Component +class SingleResourceRetrievedDiscoverabilityListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final SingleResourceRetrieved resourceRetrievedEvent) { + Preconditions.checkNotNull(resourceRetrievedEvent); + + final HttpServletRequest request = resourceRetrievedEvent.getRequest(); + final HttpServletResponse response = resourceRetrievedEvent.getResponse(); + addLinkHeaderOnSingleResourceRetrieval(request, response); + } + + void addLinkHeaderOnSingleResourceRetrieval(final HttpServletRequest request, final HttpServletResponse response) { + final StringBuffer requestURL = request.getRequestURL(); + final int positionOfLastSlash = requestURL.lastIndexOf("/"); + final String uriForResourceCreation = requestURL.substring(0, positionOfLastSlash); + + // final String linkHeaderValue = RESTURLUtil.createLinkHeader(uriForResourceCreation, "collection"); + // response.addHeader(LINK_HEADER, linkHeaderValue); + } + +} \ No newline at end of file From 6ffd867e1194423d612101c6a092f2a6a604a06d Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:37:20 +0300 Subject: [PATCH 100/206] rest discoverability work --- .../web/controller/FooController.java | 13 ++++++++ .../org/baeldung/web/controller/LinkUtil.java | 30 +++++++++++++++++++ ...ourceRetrievedDiscoverabilityListener.java | 4 +-- 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/LinkUtil.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java index ce3b59e82528..8768796e293b 100644 --- a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java @@ -1,5 +1,7 @@ package org.baeldung.web.controller; +import java.net.URI; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.util.UriTemplate; import com.google.common.base.Preconditions; @@ -47,4 +50,14 @@ public void create(@RequestBody final Foo resource, final HttpServletRequest req eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); } + @RequestMapping(value = "admin", method = RequestMethod.GET) + @ResponseStatus(value = HttpStatus.NO_CONTENT) + public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { + final String rootUri = request.getRequestURL().toString(); + + final URI fooUri = new UriTemplate("{rootUri}/{resource}").expand(rootUri, "foo"); + final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); + response.addHeader("Link", linkToFoo); + } + } diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/LinkUtil.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/LinkUtil.java new file mode 100644 index 000000000000..a41ebb5a5cdd --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/LinkUtil.java @@ -0,0 +1,30 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletResponse; + +/** + * Provides some constants and utility methods to build a Link Header to be stored in the {@link HttpServletResponse} object + */ +public final class LinkUtil { + + private LinkUtil() { + throw new AssertionError(); + } + + // + + /** + * Creates a Link Header to be stored in the {@link HttpServletResponse} to provide Discoverability features to the user + * + * @param uri + * the base uri + * @param rel + * the relative path + * + * @return the complete url + */ + public static String createLinkHeader(final String uri, final String rel) { + return "<" + uri + ">; rel=\"" + rel + "\""; + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java index b7384b0196b3..45cd7c4d131a 100644 --- a/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java @@ -25,8 +25,8 @@ void addLinkHeaderOnSingleResourceRetrieval(final HttpServletRequest request, fi final int positionOfLastSlash = requestURL.lastIndexOf("/"); final String uriForResourceCreation = requestURL.substring(0, positionOfLastSlash); - // final String linkHeaderValue = RESTURLUtil.createLinkHeader(uriForResourceCreation, "collection"); - // response.addHeader(LINK_HEADER, linkHeaderValue); + final String linkHeaderValue = LinkUtil.createLinkHeader(uriForResourceCreation, "collection"); + response.addHeader("Link", linkHeaderValue); } } \ No newline at end of file From af424e266b573ce23bfa8fb382269f3a354ee133 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:45:19 +0300 Subject: [PATCH 101/206] security cleanup --- .../{web => }/config/FrontendConfig.java | 36 +++++++++---------- .../{web => }/config/SecSecurityConfig.java | 8 ++--- .../spring/{web => }/config/WebConfig.java | 10 +++--- .../spring/web/controller/TestController.java | 28 --------------- .../web/controller/FooController.java | 4 +-- .../web/controller/TestController.java | 28 +++++++++++++++ .../baeldung/{spring/web => web/dto}/Foo.java | 2 +- .../src/main/resources/webSecurityConfig.xml | 2 +- 8 files changed, 59 insertions(+), 59 deletions(-) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{web => }/config/FrontendConfig.java (52%) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{web => }/config/SecSecurityConfig.java (71%) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{web => }/config/WebConfig.java (77%) delete mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java rename spring-security-basic-auth/src/main/java/org/baeldung/{spring => }/web/controller/FooController.java (90%) create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/web/controller/TestController.java rename spring-security-basic-auth/src/main/java/org/baeldung/{spring/web => web/dto}/Foo.java (78%) diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/FrontendConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/FrontendConfig.java similarity index 52% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/FrontendConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/config/FrontendConfig.java index ffcc855716da..693b1006b5ce 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/FrontendConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/FrontendConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -13,27 +13,27 @@ @Configuration public class FrontendConfig extends WebMvcConfigurerAdapter { - public FrontendConfig() { - super(); - } + public FrontendConfig() { + super(); + } - // API + // API - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); - registry.addViewController("/homepage.html"); - } + registry.addViewController("/homepage.html"); + } - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); - return bean; - } + return bean; + } } \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java similarity index 71% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java index 65a571c71589..a8b4962672b1 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @@ -7,8 +7,8 @@ @ImportResource({ "classpath:webSecurityConfig.xml" }) public class SecSecurityConfig { - public SecSecurityConfig() { - super(); - } + public SecSecurityConfig() { + super(); + } } diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java similarity index 77% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java index 9a79aa3b6b29..c6d3aa896b77 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/config/WebConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -8,10 +8,10 @@ @ComponentScan("org.baeldung.spring.web.controller") public class WebConfig extends WebMvcConfigurerAdapter { - public WebConfig() { - super(); - } + public WebConfig() { + super(); + } - // API + // API } \ No newline at end of file diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java deleted file mode 100644 index c7b04c14d2a4..000000000000 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/TestController.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.baeldung.spring.web.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class TestController { - - public TestController() { - super(); - } - - // API - - @RequestMapping("/permitAll") - @ResponseBody - public String permitAll() { - return "Permit All"; - } - - @RequestMapping("/securityNone") - @ResponseBody - public String securityNone() { - return "Security None"; - } - -} diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java similarity index 90% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java index eb0575f279a8..a80ab832b3f5 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/controller/FooController.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.web.controller; +package org.baeldung.web.controller; import javax.servlet.http.HttpServletResponse; -import org.baeldung.spring.web.Foo; +import org.baeldung.web.dto.Foo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/TestController.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/TestController.java new file mode 100644 index 000000000000..f68cfb2eb7dc --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/TestController.java @@ -0,0 +1,28 @@ +package org.baeldung.web.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class TestController { + + public TestController() { + super(); + } + + // API + + @RequestMapping("/permitAll") + @ResponseBody + public String permitAll() { + return "Permit All"; + } + + @RequestMapping("/securityNone") + @ResponseBody + public String securityNone() { + return "Security None"; + } + +} diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/dto/Foo.java similarity index 78% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/dto/Foo.java index a5e46bc8e545..352045989daa 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/web/Foo.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/web/dto/Foo.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web; +package org.baeldung.web.dto; import java.io.Serializable; diff --git a/spring-security-rest/src/main/resources/webSecurityConfig.xml b/spring-security-rest/src/main/resources/webSecurityConfig.xml index d3f8f6cfaf03..f53b15752c57 100644 --- a/spring-security-rest/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest/src/main/resources/webSecurityConfig.xml @@ -21,7 +21,7 @@ - + From b0692e8ef3eeda3121a442b8971804b51ad53a6f Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:47:41 +0300 Subject: [PATCH 102/206] overall cleanup --- spring-security-basic-auth/pom.xml | 8 +++ .../persistence/service/FooService.java | 0 .../web/controller/FooController.java | 45 +++++++++++++ .../org/baeldung/web/controller/LinkUtil.java | 0 .../web/controller/ResourceCreated.java | 0 ...esourceCreatedDiscoverabilityListener.java | 0 .../controller/SingleResourceRetrieved.java | 0 ...ourceRetrievedDiscoverabilityListener.java | 0 .../web/controller/FooController.java | 63 ------------------- .../main/java/org/baeldung/web/dto/Foo.java | 5 -- 10 files changed, 53 insertions(+), 68 deletions(-) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/persistence/service/FooService.java (100%) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/web/controller/LinkUtil.java (100%) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/web/controller/ResourceCreated.java (100%) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java (100%) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java (100%) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java (100%) delete mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java delete mode 100644 spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index 4b114f1435dd..9a9c7f05278e 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -88,6 +88,14 @@ runtime + + + + com.google.guava + guava + 14.0.1 + + diff --git a/spring-security-rest/src/main/java/org/baeldung/persistence/service/FooService.java b/spring-security-basic-auth/src/main/java/org/baeldung/persistence/service/FooService.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/persistence/service/FooService.java rename to spring-security-basic-auth/src/main/java/org/baeldung/persistence/service/FooService.java diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java index a80ab832b3f5..daa797ee368e 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/FooController.java @@ -1,19 +1,37 @@ package org.baeldung.web.controller; +import java.net.URI; + +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.baeldung.persistence.service.FooService; import org.baeldung.web.dto.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.util.UriComponentsBuilder; +import org.springframework.web.util.UriTemplate; + +import com.google.common.base.Preconditions; @Controller @RequestMapping(value = "/foo") public class FooController { + @Autowired + private ApplicationEventPublisher eventPublisher; + + @Autowired + private FooService service; + public FooController() { super(); } @@ -26,4 +44,31 @@ public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder return new Foo(); } + @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { + final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); + + eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); + return resourceById; + } + + @RequestMapping(value = "admin/foo", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { + Preconditions.checkNotNull(resource); + final Long idOfCreatedResource = service.create(resource); + + eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); + } + + @RequestMapping(value = "admin", method = RequestMethod.GET) + @ResponseStatus(value = HttpStatus.NO_CONTENT) + public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { + final String rootUri = request.getRequestURL().toString(); + + final URI fooUri = new UriTemplate("{rootUri}/{resource}").expand(rootUri, "foo"); + final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); + response.addHeader("Link", linkToFoo); + } } diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/LinkUtil.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/web/controller/LinkUtil.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreated.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-basic-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java rename to spring-security-basic-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java deleted file mode 100644 index 8768796e293b..000000000000 --- a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.baeldung.web.controller; - -import java.net.URI; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.baeldung.persistence.service.FooService; -import org.baeldung.web.dto.Foo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.util.UriTemplate; - -import com.google.common.base.Preconditions; - -@Controller -public class FooController { - - @Autowired - private FooService service; - - @Autowired - private ApplicationEventPublisher eventPublisher; - - // API - - @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) - @ResponseBody - public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { - final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); - - eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); - return resourceById; - } - - @RequestMapping(value = "admin/foo", method = RequestMethod.POST) - @ResponseStatus(HttpStatus.CREATED) - public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { - Preconditions.checkNotNull(resource); - final Long idOfCreatedResource = service.create(resource); - - eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); - } - - @RequestMapping(value = "admin", method = RequestMethod.GET) - @ResponseStatus(value = HttpStatus.NO_CONTENT) - public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { - final String rootUri = request.getRequestURL().toString(); - - final URI fooUri = new UriTemplate("{rootUri}/{resource}").expand(rootUri, "foo"); - final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); - response.addHeader("Link", linkToFoo); - } - -} diff --git a/spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java deleted file mode 100644 index cb12846cd751..000000000000 --- a/spring-security-rest/src/main/java/org/baeldung/web/dto/Foo.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.web.dto; - -public class Foo { - -} From 2a64bb227a5bac21b25fec81be664d91e4c07ed2 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 27 May 2013 18:49:58 +0300 Subject: [PATCH 103/206] security work --- .../main/java/org/baeldung/spring/config/PersistenceConfig.java | 0 .../src/main/java/org/baeldung/spring/config/WebConfig.java | 2 +- spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename {spring-security-rest => spring-security-basic-auth}/src/main/java/org/baeldung/spring/config/PersistenceConfig.java (100%) diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/PersistenceConfig.java similarity index 100% rename from spring-security-rest/src/main/java/org/baeldung/spring/config/PersistenceConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/config/PersistenceConfig.java diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java index c6d3aa896b77..20f3bf8f1839 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -5,7 +5,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration -@ComponentScan("org.baeldung.spring.web.controller") +@ComponentScan("org.baeldung.web") public class WebConfig extends WebMvcConfigurerAdapter { public WebConfig() { diff --git a/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml index 23e0e8c1d7b0..adb3e17d7d01 100644 --- a/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml @@ -17,7 +17,7 @@ contextConfigLocation - org.baeldung.spring.web.config + org.baeldung.spring.config From acd6f0432ed080c39fc1b1f44d0b63b6a3316829 Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 29 May 2013 18:29:25 +0300 Subject: [PATCH 104/206] minor cleanup --- .../MyBasicAuthenticationEntryPoint.java | 31 ++++++++++++++++ .../spring/config/SecSecurityConfig.java | 2 ++ .../src/main/resources/webSecurityConfig.xml | 35 +++++++++---------- 3 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 spring-security-basic-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-basic-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java new file mode 100644 index 000000000000..968237227f63 --- /dev/null +++ b/spring-security-basic-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java @@ -0,0 +1,31 @@ +package org.baeldung.security.basic; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +@Component +public class MyBasicAuthenticationEntryPoint extends BasicAuthenticationEntryPoint { + + @Override + public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException, ServletException { + response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\""); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + final PrintWriter writer = response.getWriter(); + writer.println("HTTP Status " + HttpServletResponse.SC_UNAUTHORIZED + " - " + authException.getMessage()); + } + + @Override + public void afterPropertiesSet() throws Exception { + setRealmName("Baeldung"); + super.afterPropertiesSet(); + } + +} diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java index a8b4962672b1..8d5dfb04092e 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java @@ -1,10 +1,12 @@ package org.baeldung.spring.config; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource({ "classpath:webSecurityConfig.xml" }) +@ComponentScan("org.baeldung.security") public class SecSecurityConfig { public SecSecurityConfig() { diff --git a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml index 5ddca9778643..7734ea5f56af 100644 --- a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml @@ -1,28 +1,27 @@ - - + - - + + + + - + - + - - - - - - - - - - - + + + + + + + \ No newline at end of file From 6b0dd70f2bd6b2b6fd17e4d7607fab471866f23c Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 22:56:25 +0300 Subject: [PATCH 105/206] maven cleanup --- spring-all/pom.xml | 24 +- spring-hibernate3/pom.xml | 28 +- spring-hibernate4/pom.xml | 24 +- spring-jpa/pom.xml | 37 ++- spring-mvc-java/pom.xml | 16 + .../.settings/org.eclipse.jdt.core.prefs | 6 - spring-mvc/pom.xml | 295 +++++++++--------- spring-security-basic-auth/pom.xml | 45 ++- 8 files changed, 290 insertions(+), 185 deletions(-) diff --git a/spring-all/pom.xml b/spring-all/pom.xml index 546375faddca..6f3ff2c35566 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -37,7 +37,7 @@ org.hibernate hibernate-core - 4.2.2.Final + ${hibernate.version} org.javassist @@ -47,7 +47,7 @@ mysql mysql-connector-java - 5.1.25 + ${mysql-connector-java.version} runtime @@ -56,7 +56,7 @@ org.hibernate hibernate-validator - 5.0.1.Final + ${hibernate-validator.version} @@ -80,7 +80,7 @@ com.google.guava guava - 14.0.1 + ${guava.version} @@ -128,6 +128,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -141,6 +142,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -166,10 +168,21 @@ 3.2.3.RELEASE + + 4.2.2.Final + 5.1.25 + 1.7.5 1.0.11 + + 5.0.1.Final + + + 14.0.1 + 3.1 + 1.3 4.11 @@ -181,6 +194,9 @@ 1.8.0 1.8.9 + + 1.4.2 + 2.14.1 \ No newline at end of file diff --git a/spring-hibernate3/pom.xml b/spring-hibernate3/pom.xml index 69d9da3294f5..e23ae24f11e3 100644 --- a/spring-hibernate3/pom.xml +++ b/spring-hibernate3/pom.xml @@ -32,7 +32,7 @@ org.hibernate hibernate-core - 3.6.10.Final + ${hibernate.version} org.javassist @@ -42,7 +42,7 @@ mysql mysql-connector-java - 5.1.25 + ${mysql-connector-java.version} runtime @@ -51,7 +51,7 @@ com.google.guava guava - 14.0.1 + ${guava.version} @@ -59,7 +59,7 @@ org.apache.commons commons-lang3 - 3.1 + ${commons-lang3.version} test @@ -113,6 +113,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -126,6 +127,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -149,23 +151,37 @@ - 3.2.2.RELEASE + 3.2.3.RELEASE + + + 3.6.10.Final + 5.1.25 1.7.5 1.0.11 + + 5.0.1.Final + + + 14.0.1 + 3.1 + 1.3 4.11 1.9.5 4.2.4 - 4.2.4 + 4.2.5 1.8.0 1.8.9 + + 1.4.2 + 2.14.1 \ No newline at end of file diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index 7b8668cda10b..52ad28054899 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -32,7 +32,7 @@ org.hibernate hibernate-core - 4.2.2.Final + ${hibernate.version} org.javassist @@ -42,7 +42,7 @@ mysql mysql-connector-java - 5.1.25 + ${mysql-connector-java.version} runtime @@ -51,7 +51,7 @@ org.hibernate hibernate-validator - 5.0.1.Final + ${hibernate-validator.version} @@ -59,7 +59,7 @@ com.google.guava guava - 14.0.1 + ${guava.version} @@ -121,6 +121,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -134,6 +135,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -159,10 +161,21 @@ 3.2.3.RELEASE + + 4.2.2.Final + 5.1.25 + 1.7.5 1.0.11 + + 5.0.1.Final + + + 14.0.1 + 3.1 + 1.3 4.11 @@ -174,6 +187,9 @@ 1.8.0 1.8.9 + + 1.4.2 + 2.14.1 \ No newline at end of file diff --git a/spring-jpa/pom.xml b/spring-jpa/pom.xml index d7c3bc3dac23..e2dfda178f32 100644 --- a/spring-jpa/pom.xml +++ b/spring-jpa/pom.xml @@ -1,11 +1,12 @@ 4.0.0 + org.baeldung spring-jpa 0.1-SNAPSHOT - - spring-jpa + war + spring-jpa @@ -32,12 +33,12 @@ org.hibernate hibernate-core - 4.2.1.Final + ${hibernate.version} org.hibernate hibernate-entitymanager - 4.2.1.Final + ${hibernate.version} org.javassist @@ -47,7 +48,7 @@ mysql mysql-connector-java - 5.1.25 + ${mysql-connector-java.version} runtime @@ -56,7 +57,7 @@ org.hibernate hibernate-validator - 5.0.1.Final + ${hibernate-validator.version} @@ -64,7 +65,7 @@ com.google.guava guava - 14.0.1 + ${guava.version} @@ -72,7 +73,7 @@ org.apache.commons commons-lang3 - 3.1 + ${commons-lang3.version} test @@ -126,6 +127,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -139,6 +141,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -162,23 +165,37 @@ - 3.2.2.RELEASE + 3.2.3.RELEASE + + + 4.2.2.Final + 5.1.25 1.7.5 1.0.11 + + 5.0.1.Final + + + 14.0.1 + 3.1 + 1.3 4.11 1.9.5 4.2.4 - 4.2.4 + 4.2.5 1.8.0 1.8.9 + + 1.4.2 + 2.14.1 \ No newline at end of file diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index 913aa5058c30..81428ddb2e14 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -83,6 +83,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -96,6 +97,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -121,10 +123,21 @@ 3.2.3.RELEASE + + 4.2.2.Final + 5.1.25 + 1.7.5 1.0.11 + + 5.0.1.Final + + + 14.0.1 + 3.1 + 1.3 4.11 @@ -136,6 +149,9 @@ 1.8.0 1.8.9 + + 1.4.2 + 2.14.1 \ No newline at end of file diff --git a/spring-mvc/.settings/org.eclipse.jdt.core.prefs b/spring-mvc/.settings/org.eclipse.jdt.core.prefs index 0924ed68cff2..747acb809194 100644 --- a/spring-mvc/.settings/org.eclipse.jdt.core.prefs +++ b/spring-mvc/.settings/org.eclipse.jdt.core.prefs @@ -4,11 +4,7 @@ org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonN org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning org.eclipse.jdt.core.compiler.problem.deadCode=warning @@ -17,7 +13,6 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled org.eclipse.jdt.core.compiler.problem.discouragedReference=warning org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled @@ -88,4 +83,3 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml index 3700a428ddb4..8e8969f0fda6 100644 --- a/spring-mvc/pom.xml +++ b/spring-mvc/pom.xml @@ -1,142 +1,157 @@ - - 4.0.0 - org.baeldung - spring-mvc - 0.1-SNAPSHOT - - spring-mvc - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-mvc - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.2.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.4 - - 1.8.0 - 1.8.9 - - + + 4.0.0 + org.baeldung + spring-mvc + 0.1-SNAPSHOT + + spring-mvc + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-mvc + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + 1.4.2 + 2.14.1 + \ No newline at end of file diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index 9a9c7f05278e..0b820e53d1ad 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -141,6 +141,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -154,6 +155,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -176,25 +178,38 @@
- - 3.2.3.RELEASE - 3.1.4.RELEASE + + 3.2.3.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final - - 1.7.5 - 1.0.11 + + 14.0.1 + 3.1 - - 1.3 - 4.11 - 1.9.5 + + 1.3 + 4.11 + 1.9.5 - 4.2.4 - 4.2.5 + 4.2.4 + 4.2.5 - 1.8.0 - 1.8.9 + 1.8.0 + 1.8.9 - + + 1.4.2 + 2.14.1 + \ No newline at end of file From f2496eec8b52455b0407a87c5afdde1490a71235 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 22:57:27 +0300 Subject: [PATCH 106/206] maven cleanup --- spring-security-basic-auth/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index 0b820e53d1ad..e6c8b1706634 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -180,6 +180,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 4.2.2.Final From 34f2bc6a833121d027e38be6e944d997c0a21aa2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:01:42 +0300 Subject: [PATCH 107/206] maven cleanup --- spring-all/pom.xml | 1 + spring-hibernate3/pom.xml | 1 + spring-hibernate4/pom.xml | 1 + spring-jpa/pom.xml | 1 + spring-mvc-java/pom.xml | 1 + spring-mvc/pom.xml | 1 + spring-security-login/pom.xml | 46 ++-- spring-security-rest/pom.xml | 411 ++++++++++++++++++---------------- 8 files changed, 250 insertions(+), 213 deletions(-) diff --git a/spring-all/pom.xml b/spring-all/pom.xml index 6f3ff2c35566..e801ff8c5464 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -167,6 +167,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 4.2.2.Final diff --git a/spring-hibernate3/pom.xml b/spring-hibernate3/pom.xml index e23ae24f11e3..1859506e71af 100644 --- a/spring-hibernate3/pom.xml +++ b/spring-hibernate3/pom.xml @@ -152,6 +152,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 3.6.10.Final diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index 52ad28054899..fd0fe6f121de 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -160,6 +160,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 4.2.2.Final diff --git a/spring-jpa/pom.xml b/spring-jpa/pom.xml index e2dfda178f32..ebcc7f79a0b9 100644 --- a/spring-jpa/pom.xml +++ b/spring-jpa/pom.xml @@ -166,6 +166,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 4.2.2.Final diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index 81428ddb2e14..eb3831b4aae7 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -122,6 +122,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 4.2.2.Final diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml index 8e8969f0fda6..b46d4b484e78 100644 --- a/spring-mvc/pom.xml +++ b/spring-mvc/pom.xml @@ -122,6 +122,7 @@ 3.2.3.RELEASE + 3.1.4.RELEASE 4.2.2.Final diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index b22672d8ebd9..c797ae3bcbe3 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -133,6 +133,7 @@ org.apache.maven.plugins maven-surefire-plugin + ${maven-surefire-plugin.version} @@ -146,6 +147,7 @@ org.codehaus.cargo cargo-maven2-plugin + ${cargo-maven2-plugin.version} true @@ -168,25 +170,39 @@ - - 3.2.3.RELEASE - 3.1.4.RELEASE + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final - - 1.7.5 - 1.0.11 + + 14.0.1 + 3.1 - - 1.3 - 4.11 - 1.9.5 + + 1.3 + 4.11 + 1.9.5 - 4.2.4 - 4.2.5 + 4.2.4 + 4.2.5 - 1.8.0 - 1.8.9 + 1.8.0 + 1.8.9 - + + 1.4.2 + 2.14.1 + \ No newline at end of file diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml index 8c41c2fece39..909d32af74a7 100644 --- a/spring-security-rest/pom.xml +++ b/spring-security-rest/pom.xml @@ -1,200 +1,215 @@ - - 4.0.0 - org.baeldung - spring-security-rest - 0.1-SNAPSHOT - - spring-security-rest - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - com.google.guava - guava - 14.0.1 - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-rest - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 1.7.5 - 1.0.11 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.0 - 1.8.9 - - + + 4.0.0 + org.baeldung + spring-security-rest + 0.1-SNAPSHOT + + spring-security-rest + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + 1.4.2 + 2.14.1 + \ No newline at end of file From 830a6c614ad79b806b93c40805ea8b12e2710ef6 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:02:02 +0300 Subject: [PATCH 108/206] formatting cleanup --- .../org/baeldung/spring/web/config/SecSecurityConfig.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java index 65a571c71589..a21a05c17d2d 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java +++ b/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java @@ -7,8 +7,8 @@ @ImportResource({ "classpath:webSecurityConfig.xml" }) public class SecSecurityConfig { - public SecSecurityConfig() { - super(); - } + public SecSecurityConfig() { + super(); + } } From e8a1bfa2bd7766dbc9a571f85d30b03e39e1ee4c Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:04:08 +0300 Subject: [PATCH 109/206] project cleanup --- .../.settings/org.eclipse.wst.common.component | 6 +++--- spring-mvc/.settings/org.eclipse.jdt.core.prefs | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/spring-mvc-java/.settings/org.eclipse.wst.common.component b/spring-mvc-java/.settings/org.eclipse.wst.common.component index 9784ac36ee68..73770253eef9 100644 --- a/spring-mvc-java/.settings/org.eclipse.wst.common.component +++ b/spring-mvc-java/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-mvc/.settings/org.eclipse.jdt.core.prefs b/spring-mvc/.settings/org.eclipse.jdt.core.prefs index 747acb809194..723e5b12451a 100644 --- a/spring-mvc/.settings/org.eclipse.jdt.core.prefs +++ b/spring-mvc/.settings/org.eclipse.jdt.core.prefs @@ -4,7 +4,15 @@ org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonN org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning org.eclipse.jdt.core.compiler.problem.deadCode=warning @@ -13,6 +21,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled org.eclipse.jdt.core.compiler.problem.discouragedReference=warning org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled @@ -83,3 +92,4 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 From 210be2e5737f2992e60cac27e9dc9dc625df5722 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:13:16 +0300 Subject: [PATCH 110/206] jpa work --- .../{spring => }/persistence/dao/FooDao.java | 4 +-- .../{spring => }/persistence/dao/IFooDao.java | 4 +-- .../{spring => }/persistence/model/Foo.java | 2 +- .../persistence/service/FooService.java | 6 ++-- .../config => }/HibernateXmlConfig.java | 4 +-- .../config => }/PersistenceConfig.java | 6 ++-- .../src/main/resources/hibernate4Config.xml | 2 +- spring-jpa/src/main/webapp/WEB-INF/web.xml | 30 +++++++++++-------- .../FooServicePersistenceIntegrationTest.java | 7 +++-- 9 files changed, 35 insertions(+), 30 deletions(-) rename spring-jpa/src/main/java/org/baeldung/{spring => }/persistence/dao/FooDao.java (92%) rename spring-jpa/src/main/java/org/baeldung/{spring => }/persistence/dao/IFooDao.java (71%) rename spring-jpa/src/main/java/org/baeldung/{spring => }/persistence/model/Foo.java (97%) rename spring-jpa/src/main/java/org/baeldung/{spring => }/persistence/service/FooService.java (73%) rename spring-jpa/src/main/java/org/baeldung/spring/{persistence/config => }/HibernateXmlConfig.java (75%) rename spring-jpa/src/main/java/org/baeldung/spring/{persistence/config => }/PersistenceConfig.java (94%) rename spring-jpa/src/test/java/org/baeldung/{spring => }/persistence/service/FooServicePersistenceIntegrationTest.java (90%) diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java similarity index 92% rename from spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java rename to spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java index f970ade71f70..4f37afc9ff3f 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java @@ -1,11 +1,11 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.persistence.dao; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.model.Foo; import org.springframework.stereotype.Repository; import com.google.common.base.Preconditions; diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java similarity index 71% rename from spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java rename to spring-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java index 201fc3e35187..f5799522e2fa 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.persistence.dao; import java.util.List; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.model.Foo; public interface IFooDao { diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java similarity index 97% rename from spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java rename to spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java index 8b03df39e7a3..1e3bcc013108 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.model; +package org.baeldung.persistence.model; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-jpa/src/main/java/org/baeldung/persistence/service/FooService.java similarity index 73% rename from spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-jpa/src/main/java/org/baeldung/persistence/service/FooService.java index 1d3b5c4a0201..b07698c43854 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-jpa/src/main/java/org/baeldung/persistence/service/FooService.java @@ -1,7 +1,7 @@ -package org.baeldung.spring.persistence.service; +package org.baeldung.persistence.service; -import org.baeldung.spring.persistence.dao.IFooDao; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.dao.IFooDao; +import org.baeldung.persistence.model.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/HibernateXmlConfig.java similarity index 75% rename from spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java rename to spring-jpa/src/main/java/org/baeldung/spring/HibernateXmlConfig.java index 51fbcd27c16d..4c54d150a15a 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/HibernateXmlConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -7,7 +7,7 @@ @Configuration @EnableTransactionManagement -@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ComponentScan({ "org.baeldung.persistence.dao", "org.baeldung.persistence.service" }) @ImportResource({ "classpath:hibernate4Config.xml" }) public class HibernateXmlConfig { diff --git a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java similarity index 94% rename from spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java rename to spring-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java index 52ee113e17aa..300579ff419d 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.config; +package org.baeldung.spring; import java.util.Properties; @@ -24,7 +24,7 @@ @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) -@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ComponentScan({ "org.baeldung.persistence" }) public class PersistenceConfig { @Autowired @@ -38,7 +38,7 @@ public PersistenceConfig() { public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { final LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); factoryBean.setDataSource(restDataSource()); - factoryBean.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + factoryBean.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); factoryBean.setJpaVendorAdapter(vendorAdapter); diff --git a/spring-jpa/src/main/resources/hibernate4Config.xml b/spring-jpa/src/main/resources/hibernate4Config.xml index f35de2a4c5db..f85811f8ede5 100644 --- a/spring-jpa/src/main/resources/hibernate4Config.xml +++ b/spring-jpa/src/main/resources/hibernate4Config.xml @@ -10,7 +10,7 @@ - + ${hibernate.hbm2ddl.auto} diff --git a/spring-jpa/src/main/webapp/WEB-INF/web.xml b/spring-jpa/src/main/webapp/WEB-INF/web.xml index e0de9aefd45a..90f2abc2f6c9 100644 --- a/spring-jpa/src/main/webapp/WEB-INF/web.xml +++ b/spring-jpa/src/main/webapp/WEB-INF/web.xml @@ -1,17 +1,21 @@ - - Spring MVC Application - - contextClass - + + + Spring JPA Application + + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring.persistence.config - - - org.springframework.web.context.ContextLoaderListener - + + + contextConfigLocation + org.baeldung.spring + + + org.springframework.web.context.ContextLoaderListener + + \ No newline at end of file diff --git a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java similarity index 90% rename from spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java rename to spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java index 42dbb45f030c..06e61930411e 100644 --- a/spring-jpa/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java @@ -1,9 +1,10 @@ -package org.baeldung.spring.persistence.service; +package org.baeldung.persistence.service; import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; -import org.baeldung.spring.persistence.config.PersistenceConfig; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.model.Foo; +import org.baeldung.persistence.service.FooService; +import org.baeldung.spring.PersistenceConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; From 829521b212b2a84adb156b2dc802c71c0d151e9d Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:15:06 +0300 Subject: [PATCH 111/206] jpa work --- ...rsistenceConfig.java => PersistenceJPAConfig.java} | 4 ++-- ...ateXmlConfig.java => PersistenceJPAConfigXml.java} | 11 +++++------ .../resources/{hibernate4Config.xml => jpaConfig.xml} | 0 .../service/FooServicePersistenceIntegrationTest.java | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) rename spring-jpa/src/main/java/org/baeldung/spring/{PersistenceConfig.java => PersistenceJPAConfig.java} (97%) rename spring-jpa/src/main/java/org/baeldung/spring/{HibernateXmlConfig.java => PersistenceJPAConfigXml.java} (50%) rename spring-jpa/src/main/resources/{hibernate4Config.xml => jpaConfig.xml} (100%) diff --git a/spring-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java similarity index 97% rename from spring-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java rename to spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java index 300579ff419d..29494084b1aa 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java @@ -25,12 +25,12 @@ @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.persistence" }) -public class PersistenceConfig { +public class PersistenceJPAConfig { @Autowired private Environment env; - public PersistenceConfig() { + public PersistenceJPAConfig() { super(); } diff --git a/spring-jpa/src/main/java/org/baeldung/spring/HibernateXmlConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java similarity index 50% rename from spring-jpa/src/main/java/org/baeldung/spring/HibernateXmlConfig.java rename to spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java index 4c54d150a15a..e85510a0c424 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/HibernateXmlConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java @@ -1,17 +1,16 @@ package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.transaction.annotation.EnableTransactionManagement; -@Configuration +// @Configuration @EnableTransactionManagement -@ComponentScan({ "org.baeldung.persistence.dao", "org.baeldung.persistence.service" }) -@ImportResource({ "classpath:hibernate4Config.xml" }) -public class HibernateXmlConfig { +@ComponentScan({ "org.baeldung.persistence" }) +@ImportResource({ "classpath:jpaConfig.xml" }) +public class PersistenceJPAConfigXml { - public HibernateXmlConfig() { + public PersistenceJPAConfigXml() { super(); } diff --git a/spring-jpa/src/main/resources/hibernate4Config.xml b/spring-jpa/src/main/resources/jpaConfig.xml similarity index 100% rename from spring-jpa/src/main/resources/hibernate4Config.xml rename to spring-jpa/src/main/resources/jpaConfig.xml diff --git a/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java index 06e61930411e..e6c9d8ff1828 100644 --- a/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,7 +4,7 @@ import org.baeldung.persistence.model.Foo; import org.baeldung.persistence.service.FooService; -import org.baeldung.spring.PersistenceConfig; +import org.baeldung.spring.PersistenceJPAConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -15,7 +15,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) public class FooServicePersistenceIntegrationTest { @Autowired From 5d1e5062ecf55165efdce596dba51cf6a920109d Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:18:53 +0300 Subject: [PATCH 112/206] doc work --- spring-jpa/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-jpa/README.md b/spring-jpa/README.md index 7f5cdda2e232..9f63413d937d 100644 --- a/spring-jpa/README.md +++ b/spring-jpa/README.md @@ -1,5 +1,5 @@ -JPA with Spring ========= Relevant Articles: -- \ No newline at end of file +- [Spring 3 and JPA with Hibernate](http://www.baeldung.com/2011/12/13/the-persistence-layer-with-spring-3-1-and-jpa/) + From 9d86ea24a09a361f8658f57b9b265a86c066abde Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:39:09 +0300 Subject: [PATCH 113/206] general cleanup --- spring-jpa/.settings/org.eclipse.jdt.core.prefs | 2 +- spring-jpa/pom.xml | 7 +------ spring-jpa/src/main/resources/persistence-mysql.properties | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/spring-jpa/.settings/org.eclipse.jdt.core.prefs b/spring-jpa/.settings/org.eclipse.jdt.core.prefs index a931b331929d..c201ee1f7a18 100644 --- a/spring-jpa/.settings/org.eclipse.jdt.core.prefs +++ b/spring-jpa/.settings/org.eclipse.jdt.core.prefs @@ -42,7 +42,7 @@ org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning diff --git a/spring-jpa/pom.xml b/spring-jpa/pom.xml index ebcc7f79a0b9..e3b864c3e7bb 100644 --- a/spring-jpa/pom.xml +++ b/spring-jpa/pom.xml @@ -29,12 +29,7 @@ - - - org.hibernate - hibernate-core - ${hibernate.version} - + org.hibernate hibernate-entitymanager diff --git a/spring-jpa/src/main/resources/persistence-mysql.properties b/spring-jpa/src/main/resources/persistence-mysql.properties index a1ff997616ae..c4de4ceb80a5 100644 --- a/spring-jpa/src/main/resources/persistence-mysql.properties +++ b/spring-jpa/src/main/resources/persistence-mysql.properties @@ -1,6 +1,6 @@ # jdbc.X jdbc.driverClassName=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate_dao_01?createDatabaseIfNotExist=true +jdbc.url=jdbc:mysql://localhost:3306/spring_jpa_01?createDatabaseIfNotExist=true jdbc.user=tutorialuser jdbc.pass=tutorialmy5ql From 5fc81e081e9b2c90d1a9ebc27db1956afdf356ee Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 31 May 2013 23:57:15 +0300 Subject: [PATCH 114/206] xml configuration working as well --- .../baeldung/spring/PersistenceJPAConfig.java | 21 +++++++------- .../spring/PersistenceJPAConfigXml.java | 3 +- spring-jpa/src/main/resources/jpaConfig.xml | 28 ++++++++++++------- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java index 29494084b1aa..dac41e182b23 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfig.java @@ -7,13 +7,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.JpaVendorAdapter; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.transaction.PlatformTransactionManager; @@ -21,7 +19,7 @@ import com.google.common.base.Preconditions; -@Configuration +// @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.persistence" }) @@ -36,19 +34,20 @@ public PersistenceJPAConfig() { @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { - final LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); - factoryBean.setDataSource(restDataSource()); - factoryBean.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); + final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); + em.setDataSource(dataSource()); + em.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); - final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); - factoryBean.setJpaVendorAdapter(vendorAdapter); - factoryBean.setJpaProperties(additionalProperties()); + final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); + // vendorAdapter.set + em.setJpaVendorAdapter(vendorAdapter); + em.setJpaProperties(additionalProperties()); - return factoryBean; + return em; } @Bean - public DataSource restDataSource() { + public DataSource dataSource() { final DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); diff --git a/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java index e85510a0c424..98f4f47249f6 100644 --- a/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java +++ b/spring-jpa/src/main/java/org/baeldung/spring/PersistenceJPAConfigXml.java @@ -1,10 +1,11 @@ package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.transaction.annotation.EnableTransactionManagement; -// @Configuration +@Configuration @EnableTransactionManagement @ComponentScan({ "org.baeldung.persistence" }) @ImportResource({ "classpath:jpaConfig.xml" }) diff --git a/spring-jpa/src/main/resources/jpaConfig.xml b/spring-jpa/src/main/resources/jpaConfig.xml index f85811f8ede5..31df8d69dacd 100644 --- a/spring-jpa/src/main/resources/jpaConfig.xml +++ b/spring-jpa/src/main/resources/jpaConfig.xml @@ -1,17 +1,24 @@ - - - + + - + + + + + ${hibernate.hbm2ddl.auto} ${hibernate.dialect} @@ -26,10 +33,11 @@ - - + + - + + \ No newline at end of file From a7464803266148b7359e30ae99814c8b946d3d8e Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 00:40:51 +0300 Subject: [PATCH 115/206] dao work --- .../persistence/dao/AbstractJpaDAO.java | 46 +++++++++++++++++ .../org/baeldung/persistence/dao/FooDao.java | 49 ++----------------- .../org/baeldung/persistence/model/Foo.java | 4 +- 3 files changed, 52 insertions(+), 47 deletions(-) create mode 100644 spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java diff --git a/spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java b/spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java new file mode 100644 index 000000000000..13007d9fccef --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/persistence/dao/AbstractJpaDAO.java @@ -0,0 +1,46 @@ +package org.baeldung.persistence.dao; + +import java.io.Serializable; +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +public abstract class AbstractJpaDAO { + + private Class clazz; + + @PersistenceContext + private EntityManager entityManager; + + public final void setClazz(final Class clazzToSet) { + this.clazz = clazzToSet; + } + + public T findOne(final long id) { + return entityManager.find(clazz, id); + } + + @SuppressWarnings("unchecked") + public List findAll() { + return entityManager.createQuery("from " + clazz.getName()).getResultList(); + } + + public void create(final T entity) { + entityManager.persist(entity); + } + + public T update(final T entity) { + return entityManager.merge(entity); + } + + public void delete(final T entity) { + entityManager.remove(entity); + } + + public void deleteById(final long entityId) { + final T entity = findOne(entityId); + delete(entity); + } + +} \ No newline at end of file diff --git a/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java b/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java index 4f37afc9ff3f..77978c5cf282 100644 --- a/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java +++ b/spring-jpa/src/main/java/org/baeldung/persistence/dao/FooDao.java @@ -1,60 +1,17 @@ package org.baeldung.persistence.dao; -import java.util.List; - -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; - import org.baeldung.persistence.model.Foo; import org.springframework.stereotype.Repository; -import com.google.common.base.Preconditions; - @Repository -public class FooDao implements IFooDao { - - @PersistenceContext - private EntityManager entityManager; +public class FooDao extends AbstractJpaDAO implements IFooDao { public FooDao() { super(); - } - - // API - - @Override - public Foo findOne(final long id) { - return entityManager.find(Foo.class, id); - } - @Override - @SuppressWarnings("unchecked") - public List findAll() { - return entityManager.createQuery("from " + Foo.class.getName()).getResultList(); + setClazz(Foo.class); } - @Override - public void create(final Foo entity) { - Preconditions.checkNotNull(entity); - entityManager.persist(entity); - } - - @Override - public Foo update(final Foo entity) { - Preconditions.checkNotNull(entity); - return entityManager.merge(entity); - } - - @Override - public void delete(final Foo entity) { - Preconditions.checkNotNull(entity); - entityManager.remove(entity); - } - - @Override - public void deleteById(final long entityId) { - final Foo entity = findOne(entityId); - delete(entity); - } + // API } diff --git a/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java b/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java index 1e3bcc013108..8e1dee33e845 100644 --- a/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java +++ b/spring-jpa/src/main/java/org/baeldung/persistence/model/Foo.java @@ -1,5 +1,7 @@ package org.baeldung.persistence.model; +import java.io.Serializable; + import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -7,7 +9,7 @@ import javax.persistence.Id; @Entity -public class Foo { +public class Foo implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) From de6dbe897fba36d6d343521b3d8fb60794bbcbab Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 00:54:49 +0300 Subject: [PATCH 116/206] cleanup work --- .../core/ComponentUsingProperties.java | 12 ++++++++++ .../baeldung/{web => persistence}/Setup.java | 12 +++------- .../baeldung/spring/config/CoreConfig.java | 4 +++- .../{ClientWebConfig.java => MvcConfig.java} | 4 ++-- .../org/baeldung/spring/config/WebConfig.java | 22 ------------------- .../main/java/org/baeldung/web/BeanC1.java | 12 ---------- .../main/java/org/baeldung/web/BeanC2.java | 12 ---------- .../src/main/java/org/baeldung/web/BeanD.java | 12 ---------- .../main/java/org/baeldung/web/IBeanC.java | 5 ----- .../main/java/org/baeldung/web/IBeanD.java | 5 ----- .../main/java/org/baeldung/web/IServiceA.java | 5 ----- .../main/java/org/baeldung/web/IServiceB.java | 5 ----- .../main/java/org/baeldung/web/ServiceA.java | 22 ------------------- .../main/java/org/baeldung/web/ServiceB.java | 20 ----------------- ...beansInXml.xml => configForProperties.xml} | 0 15 files changed, 20 insertions(+), 132 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java rename spring-all/src/main/java/org/baeldung/{web => persistence}/Setup.java (72%) rename spring-all/src/main/java/org/baeldung/spring/config/{ClientWebConfig.java => MvcConfig.java} (92%) delete mode 100644 spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/BeanC1.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/BeanC2.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/BeanD.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/IBeanC.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/IBeanD.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/IServiceA.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/IServiceB.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/ServiceA.java delete mode 100644 spring-all/src/main/java/org/baeldung/web/ServiceB.java rename spring-all/src/main/resources/{beansInXml.xml => configForProperties.xml} (100%) diff --git a/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java b/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java new file mode 100644 index 000000000000..b3b44da3bdaa --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java @@ -0,0 +1,12 @@ +package org.baeldung.core; + +import org.springframework.stereotype.Component; + +@Component +public class ComponentUsingProperties { + + public ComponentUsingProperties() { + super(); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/web/Setup.java b/spring-all/src/main/java/org/baeldung/persistence/Setup.java similarity index 72% rename from spring-all/src/main/java/org/baeldung/web/Setup.java rename to spring-all/src/main/java/org/baeldung/persistence/Setup.java index f04135d807f6..5cba4e70fba3 100644 --- a/spring-all/src/main/java/org/baeldung/web/Setup.java +++ b/spring-all/src/main/java/org/baeldung/persistence/Setup.java @@ -1,20 +1,14 @@ -package org.baeldung.web; +package org.baeldung.persistence; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.stereotype.Component; -// @Component +@Component public class Setup implements ApplicationListener { private boolean setupDone; - @Autowired - ServiceA serviceA; - - @Autowired - IServiceB serviceB; - public Setup() { super(); } diff --git a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java index e202a779dbbe..ba17ca79386b 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java @@ -1,11 +1,13 @@ package org.baeldung.spring.config; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration -@ImportResource("classpath:beansInXml.xml") +@ImportResource("classpath:configForProperties.xml") +@ComponentScan("org.baeldung.core") public class CoreConfig extends WebMvcConfigurerAdapter { public CoreConfig() { diff --git a/spring-all/src/main/java/org/baeldung/spring/config/ClientWebConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java similarity index 92% rename from spring-all/src/main/java/org/baeldung/spring/config/ClientWebConfig.java rename to spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java index f027eb73fc6a..f87e400fce82 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/ClientWebConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java @@ -11,9 +11,9 @@ @EnableWebMvc @Configuration -public class ClientWebConfig extends WebMvcConfigurerAdapter { +public class MvcConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { + public MvcConfig() { super(); } diff --git a/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java deleted file mode 100644 index c69ef21b0c24..000000000000 --- a/spring-all/src/main/java/org/baeldung/spring/config/WebConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.baeldung.spring.config; - -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -@Configuration -@EnableWebMvc -@ComponentScan("org.baeldung.web") -public class WebConfig extends WebMvcConfigurerAdapter { - - @Autowired - BeanFactory beanFactory; - - public WebConfig() { - super(); - } - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/web/BeanC1.java b/spring-all/src/main/java/org/baeldung/web/BeanC1.java deleted file mode 100644 index cb3c845a0258..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/BeanC1.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.baeldung.web; - -import org.springframework.stereotype.Component; - -@Component -public class BeanC1 implements IBeanC { - - public BeanC1() { - super(); - } - -} diff --git a/spring-all/src/main/java/org/baeldung/web/BeanC2.java b/spring-all/src/main/java/org/baeldung/web/BeanC2.java deleted file mode 100644 index ed38a809cf5f..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/BeanC2.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.baeldung.web; - -import org.springframework.stereotype.Component; - -@Component -public class BeanC2 implements IBeanC { - - public BeanC2() { - super(); - } - -} diff --git a/spring-all/src/main/java/org/baeldung/web/BeanD.java b/spring-all/src/main/java/org/baeldung/web/BeanD.java deleted file mode 100644 index 04488238e533..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/BeanD.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.baeldung.web; - -import org.springframework.stereotype.Component; - -@Component -public class BeanD implements IBeanD { - - public BeanD() { - super(); - } - -} diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanC.java b/spring-all/src/main/java/org/baeldung/web/IBeanC.java deleted file mode 100644 index 78adca4e72eb..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/IBeanC.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.web; - -public interface IBeanC { - // -} diff --git a/spring-all/src/main/java/org/baeldung/web/IBeanD.java b/spring-all/src/main/java/org/baeldung/web/IBeanD.java deleted file mode 100644 index 2b50038c71e0..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/IBeanD.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.web; - -public interface IBeanD { - // -} diff --git a/spring-all/src/main/java/org/baeldung/web/IServiceA.java b/spring-all/src/main/java/org/baeldung/web/IServiceA.java deleted file mode 100644 index 0461d5293ff8..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/IServiceA.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.web; - -public interface IServiceA { - // -} diff --git a/spring-all/src/main/java/org/baeldung/web/IServiceB.java b/spring-all/src/main/java/org/baeldung/web/IServiceB.java deleted file mode 100644 index faf048cde5f0..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/IServiceB.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.web; - -public interface IServiceB { - // -} diff --git a/spring-all/src/main/java/org/baeldung/web/ServiceA.java b/spring-all/src/main/java/org/baeldung/web/ServiceA.java deleted file mode 100644 index deee4c6e5580..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/ServiceA.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.baeldung.web; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service -@Transactional -public class ServiceA { - - @Autowired - public ServiceA(final IServiceB serviceB) { - super(); - } - - // - - public void testA() { - System.out.println(); - } - -} diff --git a/spring-all/src/main/java/org/baeldung/web/ServiceB.java b/spring-all/src/main/java/org/baeldung/web/ServiceB.java deleted file mode 100644 index 48ff0f264829..000000000000 --- a/spring-all/src/main/java/org/baeldung/web/ServiceB.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.baeldung.web; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -@Service -@Transactional -public class ServiceB implements IServiceB { - - public ServiceB() { - super(); - } - - // - - public void testB() { - System.out.println(); - } - -} diff --git a/spring-all/src/main/resources/beansInXml.xml b/spring-all/src/main/resources/configForProperties.xml similarity index 100% rename from spring-all/src/main/resources/beansInXml.xml rename to spring-all/src/main/resources/configForProperties.xml From dee468a15411b39aca57deca3cd7e794a28f89e3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 01:07:57 +0300 Subject: [PATCH 117/206] initial work on properties --- ...e.wst.jsdt.core.javascriptValidator.launch | 7 ------- .../.settings/org.eclipse.jdt.core.prefs | 4 ++++ spring-all/pom.xml | 9 ++++++++- .../core/ComponentUsingProperties.java | 20 ++++++++++++++++++- .../spring/config/PersistenceConfig.java | 5 ++--- .../main/resources/configForProperties.xml | 2 +- spring-all/src/main/resources/foo.properties | 1 + .../resources/persistence-mysql.properties | 10 ---------- .../core/PropertiesViaXmlIntegrationTest.java | 19 ++++++++++++++++++ 9 files changed, 54 insertions(+), 23 deletions(-) delete mode 100644 spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-all/src/main/resources/foo.properties delete mode 100644 spring-all/src/main/resources/persistence-mysql.properties create mode 100644 spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java diff --git a/spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch deleted file mode 100644 index 627021fb9640..000000000000 --- a/spring-all/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-all/.settings/org.eclipse.jdt.core.prefs b/spring-all/.settings/org.eclipse.jdt.core.prefs index 0924ed68cff2..723e5b12451a 100644 --- a/spring-all/.settings/org.eclipse.jdt.core.prefs +++ b/spring-all/.settings/org.eclipse.jdt.core.prefs @@ -6,7 +6,11 @@ org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nul org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore diff --git a/spring-all/pom.xml b/spring-all/pom.xml index e801ff8c5464..7e93da8b647c 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -84,7 +84,14 @@ - + + + org.springframework + spring-test + ${org.springframework.version} + test + + junit junit-dep diff --git a/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java b/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java index b3b44da3bdaa..7df4d8ead0af 100644 --- a/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java +++ b/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java @@ -1,12 +1,30 @@ package org.baeldung.core; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @Component -public class ComponentUsingProperties { +public class ComponentUsingProperties implements InitializingBean { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; public ComponentUsingProperties() { super(); } + // + + @Override + public void afterPropertiesSet() throws Exception { + System.out.println("via @Value: " + injectedProperty); + System.out.println("via Environment: " + env.getProperty("key.something")); + } + } diff --git a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java index 078d7e6f88bc..6a057fc0c741 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @@ -18,10 +17,10 @@ import com.google.common.base.Preconditions; -@Configuration +// @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) -@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ComponentScan({ "org.baeldung.persistence" }) public class PersistenceConfig { @Autowired diff --git a/spring-all/src/main/resources/configForProperties.xml b/spring-all/src/main/resources/configForProperties.xml index 9cd3282179bd..c3218dffa416 100644 --- a/spring-all/src/main/resources/configForProperties.xml +++ b/spring-all/src/main/resources/configForProperties.xml @@ -4,6 +4,6 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> - + \ No newline at end of file diff --git a/spring-all/src/main/resources/foo.properties b/spring-all/src/main/resources/foo.properties new file mode 100644 index 000000000000..7c47cd788002 --- /dev/null +++ b/spring-all/src/main/resources/foo.properties @@ -0,0 +1 @@ +key.something=val \ No newline at end of file diff --git a/spring-all/src/main/resources/persistence-mysql.properties b/spring-all/src/main/resources/persistence-mysql.properties deleted file mode 100644 index 8263b0d9accd..000000000000 --- a/spring-all/src/main/resources/persistence-mysql.properties +++ /dev/null @@ -1,10 +0,0 @@ -# jdbc.X -jdbc.driverClassName=com.mysql.jdbc.Driver -jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate4_01?createDatabaseIfNotExist=true -jdbc.user=tutorialuser -jdbc.pass=tutorialmy5ql - -# hibernate.X -hibernate.dialect=org.hibernate.dialect.MySQL5Dialect -hibernate.show_sql=false -hibernate.hbm2ddl.auto=create-drop diff --git a/spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java b/spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java new file mode 100644 index 000000000000..5bfede4217b6 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.core; + +import org.baeldung.spring.config.CoreConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { CoreConfig.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesViaXmlIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} From 52995a5194a0923030ea4db0049beb5b3c0e0528 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 01:10:08 +0300 Subject: [PATCH 118/206] property work --- .../baeldung/spring/config/CoreConfig.java | 2 -- .../properties/PropertiesWithJavaConfig.java | 17 +++++++++++++++++ .../properties/PropertiesWithXmlConfig.java | 17 +++++++++++++++++ .../PropertiesWithJavaIntegrationTest.java | 19 +++++++++++++++++++ ... => PropertiesWithXmlIntegrationTest.java} | 6 +++--- 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java create mode 100644 spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java rename spring-all/src/test/java/org/baeldung/core/{PropertiesViaXmlIntegrationTest.java => PropertiesWithXmlIntegrationTest.java} (66%) diff --git a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java index ba17ca79386b..ff1742351b23 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java @@ -2,11 +2,9 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.ImportResource; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration -@ImportResource("classpath:configForProperties.xml") @ComponentScan("org.baeldung.core") public class CoreConfig extends WebMvcConfigurerAdapter { diff --git a/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java new file mode 100644 index 000000000000..fc67b7430ae5 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring.properties; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ComponentScan("org.baeldung.core") +@PropertySource("classpath:foo.properties") +public class PropertiesWithJavaConfig extends WebMvcConfigurerAdapter { + + public PropertiesWithJavaConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java b/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java new file mode 100644 index 000000000000..f5f5de77cb1d --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring.properties; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ImportResource("classpath:configForProperties.xml") +@ComponentScan("org.baeldung.core") +public class PropertiesWithXmlConfig extends WebMvcConfigurerAdapter { + + public PropertiesWithXmlConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java b/spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java new file mode 100644 index 000000000000..e3cfb493ede3 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.core; + +import org.baeldung.spring.properties.PropertiesWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PropertiesWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesWithJavaIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} diff --git a/spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java b/spring-all/src/test/java/org/baeldung/core/PropertiesWithXmlIntegrationTest.java similarity index 66% rename from spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java rename to spring-all/src/test/java/org/baeldung/core/PropertiesWithXmlIntegrationTest.java index 5bfede4217b6..44cacf58e36c 100644 --- a/spring-all/src/test/java/org/baeldung/core/PropertiesViaXmlIntegrationTest.java +++ b/spring-all/src/test/java/org/baeldung/core/PropertiesWithXmlIntegrationTest.java @@ -1,6 +1,6 @@ package org.baeldung.core; -import org.baeldung.spring.config.CoreConfig; +import org.baeldung.spring.properties.PropertiesWithXmlConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; @@ -8,8 +8,8 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { CoreConfig.class }, loader = AnnotationConfigContextLoader.class) -public class PropertiesViaXmlIntegrationTest { +@ContextConfiguration(classes = { PropertiesWithXmlConfig.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesWithXmlIntegrationTest { @Test public final void givenContextIsInitialized_thenNoException() { From a7eeabc8de3684f04d10d94a42255432446bb3e9 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 11:47:10 +0300 Subject: [PATCH 119/206] properties logic moved entirelly under a package --- .../core/ComponentUsingProperties.java | 6 ++--- .../spring/PropertiesWithJavaConfig.java | 25 +++++++++++++++++++ .../spring}/PropertiesWithXmlConfig.java | 5 ++-- .../properties/PropertiesWithJavaConfig.java | 17 ------------- .../main/resources/configForProperties.xml | 6 ++++- spring-all/src/main/resources/logback.xml | 2 ++ .../PropertiesWithJavaIntegrationTest.java | 16 +++++++++--- .../PropertiesWithXmlIntegrationTest.java | 16 +++++++++--- 8 files changed, 63 insertions(+), 30 deletions(-) rename spring-all/src/main/java/org/baeldung/{ => properties}/core/ComponentUsingProperties.java (73%) create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java rename spring-all/src/main/java/org/baeldung/{spring/properties => properties/spring}/PropertiesWithXmlConfig.java (64%) delete mode 100644 spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java rename spring-all/src/test/java/org/baeldung/{ => properties}/core/PropertiesWithJavaIntegrationTest.java (50%) rename spring-all/src/test/java/org/baeldung/{ => properties}/core/PropertiesWithXmlIntegrationTest.java (50%) diff --git a/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java b/spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java similarity index 73% rename from spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java rename to spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java index 7df4d8ead0af..7e082702fe7e 100644 --- a/spring-all/src/main/java/org/baeldung/core/ComponentUsingProperties.java +++ b/spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java @@ -1,4 +1,4 @@ -package org.baeldung.core; +package org.baeldung.properties.core; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +23,8 @@ public ComponentUsingProperties() { @Override public void afterPropertiesSet() throws Exception { - System.out.println("via @Value: " + injectedProperty); - System.out.println("via Environment: " + env.getProperty("key.something")); + System.out.println("in afterPropertiesSet via @Value: " + injectedProperty); + System.out.println("in afterPropertiesSet Environment: " + env.getProperty("key.something")); } } diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java new file mode 100644 index 000000000000..0269053fbeb1 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java @@ -0,0 +1,25 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; + +@Configuration +@ComponentScan("org.baeldung.core") +@PropertySource("classpath:foo.properties") +public class PropertiesWithJavaConfig { + + public PropertiesWithJavaConfig() { + super(); + } + + // beans + + @Bean + public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { + return new PropertySourcesPlaceholderConfigurer(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java similarity index 64% rename from spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java rename to spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java index f5f5de77cb1d..9ad7febcb0c1 100644 --- a/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithXmlConfig.java +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java @@ -1,14 +1,13 @@ -package org.baeldung.spring.properties; +package org.baeldung.properties.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @ImportResource("classpath:configForProperties.xml") @ComponentScan("org.baeldung.core") -public class PropertiesWithXmlConfig extends WebMvcConfigurerAdapter { +public class PropertiesWithXmlConfig { public PropertiesWithXmlConfig() { super(); diff --git a/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java deleted file mode 100644 index fc67b7430ae5..000000000000 --- a/spring-all/src/main/java/org/baeldung/spring/properties/PropertiesWithJavaConfig.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.baeldung.spring.properties; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -@Configuration -@ComponentScan("org.baeldung.core") -@PropertySource("classpath:foo.properties") -public class PropertiesWithJavaConfig extends WebMvcConfigurerAdapter { - - public PropertiesWithJavaConfig() { - super(); - } - -} \ No newline at end of file diff --git a/spring-all/src/main/resources/configForProperties.xml b/spring-all/src/main/resources/configForProperties.xml index c3218dffa416..6ec3d15fe50c 100644 --- a/spring-all/src/main/resources/configForProperties.xml +++ b/spring-all/src/main/resources/configForProperties.xml @@ -1,9 +1,13 @@ - + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/logback.xml b/spring-all/src/main/resources/logback.xml index 1146dade632e..45c9697f776f 100644 --- a/spring-all/src/main/resources/logback.xml +++ b/spring-all/src/main/resources/logback.xml @@ -12,6 +12,8 @@ + + diff --git a/spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java similarity index 50% rename from spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java rename to spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java index e3cfb493ede3..72d4ccb4af67 100644 --- a/spring-all/src/test/java/org/baeldung/core/PropertiesWithJavaIntegrationTest.java +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java @@ -1,8 +1,11 @@ -package org.baeldung.core; +package org.baeldung.properties.core; -import org.baeldung.spring.properties.PropertiesWithJavaConfig; +import org.baeldung.properties.spring.PropertiesWithJavaConfig; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -11,9 +14,16 @@ @ContextConfiguration(classes = { PropertiesWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) public class PropertiesWithJavaIntegrationTest { + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + @Test public final void givenContextIsInitialized_thenNoException() { - // + System.out.println("in test via @Value: " + injectedProperty); + System.out.println("in test Environment: " + env.getProperty("key.something")); } } diff --git a/spring-all/src/test/java/org/baeldung/core/PropertiesWithXmlIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java similarity index 50% rename from spring-all/src/test/java/org/baeldung/core/PropertiesWithXmlIntegrationTest.java rename to spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java index 44cacf58e36c..ff5eaab910b1 100644 --- a/spring-all/src/test/java/org/baeldung/core/PropertiesWithXmlIntegrationTest.java +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java @@ -1,8 +1,11 @@ -package org.baeldung.core; +package org.baeldung.properties.core; -import org.baeldung.spring.properties.PropertiesWithXmlConfig; +import org.baeldung.properties.spring.PropertiesWithXmlConfig; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -11,9 +14,16 @@ @ContextConfiguration(classes = { PropertiesWithXmlConfig.class }, loader = AnnotationConfigContextLoader.class) public class PropertiesWithXmlIntegrationTest { + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + @Test public final void givenContextIsInitialized_thenNoException() { - // + System.out.println("in test via @Value: " + injectedProperty); + System.out.println("in test Environment: " + env.getProperty("key.something")); } } From f5af87c8581753b87c4a0d3d9d31876fe02ea02e Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 13:04:45 +0300 Subject: [PATCH 120/206] properties work --- .../core/ComponentInXmlUsingProperties.java | 30 +++++++++++++++++++ .../spring/PropertiesWithJavaConfig.java | 4 +-- .../main/resources/configForProperties.xml | 11 +++++-- 3 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java diff --git a/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java b/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java new file mode 100644 index 000000000000..f695326cd6bd --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java @@ -0,0 +1,30 @@ +package org.baeldung.properties.core; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; + +public class ComponentInXmlUsingProperties implements InitializingBean { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + public ComponentInXmlUsingProperties(final String propertyValue) { + super(); + + System.out.println("Constructor Injection - Property Value resolted to: " + propertyValue); + } + + // + + @Override + public void afterPropertiesSet() throws Exception { + System.out.println("in afterPropertiesSet via @Value: " + injectedProperty); + System.out.println("in afterPropertiesSet Environment: " + env.getProperty("key.something")); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java index 0269053fbeb1..9b5d7ed047b5 100644 --- a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java @@ -7,7 +7,7 @@ import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; @Configuration -@ComponentScan("org.baeldung.core") +@ComponentScan("org.baeldung.properties.core") @PropertySource("classpath:foo.properties") public class PropertiesWithJavaConfig { @@ -18,7 +18,7 @@ public PropertiesWithJavaConfig() { // beans @Bean - public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { + public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); } diff --git a/spring-all/src/main/resources/configForProperties.xml b/spring-all/src/main/resources/configForProperties.xml index 6ec3d15fe50c..fc6cf21069e6 100644 --- a/spring-all/src/main/resources/configForProperties.xml +++ b/spring-all/src/main/resources/configForProperties.xml @@ -6,8 +6,13 @@ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> - - - + + + + + + + + \ No newline at end of file From 9722a641271389fd9f79c2f30b6780d7f4e09c6e Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 13:59:11 +0300 Subject: [PATCH 121/206] properties work --- .../spring/PropertiesWithJavaConfigOther.java | 16 ++++++++++ .../spring/PropertiesWithXmlConfigOne.java | 16 ++++++++++ .../spring/PropertiesWithXmlConfigTwo.java | 14 +++++++++ spring-all/src/main/resources/bar.properties | 1 + .../main/resources/configForProperties.xml | 5 +--- .../main/resources/configForPropertiesOne.xml | 15 ++++++++++ .../main/resources/configForPropertiesTwo.xml | 11 +++++++ .../PropertiesWithJavaIntegrationTest.java | 3 +- ...ertiesWithMultipleXmlsIntegrationTest.java | 30 +++++++++++++++++++ 9 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java create mode 100644 spring-all/src/main/resources/bar.properties create mode 100644 spring-all/src/main/resources/configForPropertiesOne.xml create mode 100644 spring-all/src/main/resources/configForPropertiesTwo.xml create mode 100644 spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java new file mode 100644 index 000000000000..594ba0a09d52 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java @@ -0,0 +1,16 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +@Configuration +@PropertySource("classpath:bar.properties") +public class PropertiesWithJavaConfigOther { + + public PropertiesWithJavaConfigOther() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java new file mode 100644 index 000000000000..9061cc10d48d --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java @@ -0,0 +1,16 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource("classpath:configForPropertiesOne.xml") +@ComponentScan("org.baeldung.core") +public class PropertiesWithXmlConfigOne { + + public PropertiesWithXmlConfigOne() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java new file mode 100644 index 000000000000..e4365cbc8b78 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java @@ -0,0 +1,14 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource("classpath:configForPropertiesTwo.xml") +public class PropertiesWithXmlConfigTwo { + + public PropertiesWithXmlConfigTwo() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/resources/bar.properties b/spring-all/src/main/resources/bar.properties new file mode 100644 index 000000000000..1a41a49c4c3c --- /dev/null +++ b/spring-all/src/main/resources/bar.properties @@ -0,0 +1 @@ +key.something2=val2 \ No newline at end of file diff --git a/spring-all/src/main/resources/configForProperties.xml b/spring-all/src/main/resources/configForProperties.xml index fc6cf21069e6..20a40a319559 100644 --- a/spring-all/src/main/resources/configForProperties.xml +++ b/spring-all/src/main/resources/configForProperties.xml @@ -6,12 +6,9 @@ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> - - - - + diff --git a/spring-all/src/main/resources/configForPropertiesOne.xml b/spring-all/src/main/resources/configForPropertiesOne.xml new file mode 100644 index 000000000000..ad9716fada18 --- /dev/null +++ b/spring-all/src/main/resources/configForPropertiesOne.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/configForPropertiesTwo.xml b/spring-all/src/main/resources/configForPropertiesTwo.xml new file mode 100644 index 000000000000..b9d5e86c95d9 --- /dev/null +++ b/spring-all/src/main/resources/configForPropertiesTwo.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java index 72d4ccb4af67..d6c99502d7db 100644 --- a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java @@ -1,6 +1,7 @@ package org.baeldung.properties.core; import org.baeldung.properties.spring.PropertiesWithJavaConfig; +import org.baeldung.properties.spring.PropertiesWithJavaConfigOther; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -11,7 +12,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PropertiesWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PropertiesWithJavaConfig.class, PropertiesWithJavaConfigOther.class }, loader = AnnotationConfigContextLoader.class) public class PropertiesWithJavaIntegrationTest { @Autowired diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java new file mode 100644 index 000000000000..9fc793fc1bf4 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java @@ -0,0 +1,30 @@ +package org.baeldung.properties.core; + +import org.baeldung.properties.spring.PropertiesWithXmlConfigOne; +import org.baeldung.properties.spring.PropertiesWithXmlConfigTwo; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PropertiesWithXmlConfigOne.class, PropertiesWithXmlConfigTwo.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesWithMultipleXmlsIntegrationTest { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + @Test + public final void givenContextIsInitialized_thenNoException() { + System.out.println("in test via @Value: " + injectedProperty); + System.out.println("in test Environment: " + env.getProperty("key.something")); + } + +} From d323485b54d314ae5397bc4b8984520d2d3b2019 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 14:00:17 +0300 Subject: [PATCH 122/206] doc work --- spring-all/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-all/README.md b/spring-all/README.md index d3e07f338d80..2a0650209bf4 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -4,3 +4,4 @@ Relevant articles: - [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) - [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) - [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) +- [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) \ No newline at end of file From 6d68242ff7cf8f63d0f7715a25a8a9ce4713f584 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 14:01:34 +0300 Subject: [PATCH 123/206] doc work --- spring-all/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-all/README.md b/spring-all/README.md index 2a0650209bf4..78b34858c574 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -4,4 +4,4 @@ Relevant articles: - [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) - [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) - [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) -- [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) \ No newline at end of file +- [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) - checkout the `org.baeldung.properties` package for all scenarios of properties injection and usage \ No newline at end of file From 044e6a3312027286260d68584bec5e8f8f4bf6d1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 14:53:31 +0300 Subject: [PATCH 124/206] general cleanup and improvements --- spring-hibernate3/.springBeans | 1 - .../persistence/dao/AbstractHibernateDao.java | 2 +- .../{spring => }/persistence/dao/FooDao.java | 4 +-- .../org/baeldung/persistence/dao/IFooDao.java | 7 +++++ .../persistence/dao/IOperations.java | 2 +- .../{spring => }/persistence/model/Foo.java | 2 +- .../persistence/service/FooService.java | 6 ++--- .../config => }/PersistenceConfig.java | 2 +- .../config => }/PersistenceXmlConfig.java | 2 +- .../spring/persistence/dao/IFooDao.java | 7 ----- .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 ----- .../src/main/webapp/WEB-INF/web.xml | 27 ++++++++++--------- .../FooServicePersistenceIntegrationTest.java | 5 ++-- spring-hibernate4/.springBeans | 1 - .../baeldung/persistence/dao/IChildDao.java | 8 ++++++ .../org/baeldung/persistence/dao/IFooDao.java | 8 ++++++ .../baeldung/persistence/dao/IParentDao.java | 8 ++++++ .../dao/common/AbstractHibernateDao.java | 2 +- .../persistence/dao/common/IOperations.java | 2 +- .../persistence/dao/impl/ChildDao.java | 8 +++--- .../persistence/dao/impl/FooDao.java | 8 +++--- .../persistence/dao/impl/ParentDao.java | 8 +++--- .../{spring => }/persistence/model/Child.java | 2 +- .../{spring => }/persistence/model/Foo.java | 2 +- .../persistence/model/Parent.java | 2 +- .../persistence/service/IChildService.java | 8 ++++++ .../persistence/service/IFooService.java | 8 ++++++ .../persistence/service/IParentService.java | 8 ++++++ .../service/common/AbstractService.java | 4 +-- .../service/impl/ChildService.java | 12 ++++----- .../persistence/service/impl/FooService.java | 12 ++++----- .../service/impl/ParentService.java | 12 ++++----- .../config => }/HibernateXmlConfig.java | 2 +- .../config => }/PersistenceConfig.java | 2 +- .../spring/persistence/dao/IChildDao.java | 8 ------ .../spring/persistence/dao/IFooDao.java | 8 ------ .../spring/persistence/dao/IParentDao.java | 8 ------ .../persistence/service/IChildService.java | 8 ------ .../persistence/service/IFooService.java | 8 ------ .../persistence/service/IParentService.java | 8 ------ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 ----- .../src/main/webapp/WEB-INF/view/sample.jsp | 7 ----- .../src/main/webapp/WEB-INF/web.xml | 27 ++++++++++--------- .../FooServicePersistenceIntegrationTest.java | 5 ++-- ...rentServicePersistenceIntegrationTest.java | 8 +++--- 45 files changed, 143 insertions(+), 158 deletions(-) rename spring-hibernate3/src/main/java/org/baeldung/{spring => }/persistence/dao/AbstractHibernateDao.java (97%) rename spring-hibernate3/src/main/java/org/baeldung/{spring => }/persistence/dao/FooDao.java (70%) create mode 100644 spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IFooDao.java rename spring-hibernate3/src/main/java/org/baeldung/{spring => }/persistence/dao/IOperations.java (87%) rename spring-hibernate3/src/main/java/org/baeldung/{spring => }/persistence/model/Foo.java (97%) rename spring-hibernate3/src/main/java/org/baeldung/{spring => }/persistence/service/FooService.java (73%) rename spring-hibernate3/src/main/java/org/baeldung/spring/{persistence/config => }/PersistenceConfig.java (98%) rename spring-hibernate3/src/main/java/org/baeldung/spring/{persistence/config => }/PersistenceXmlConfig.java (91%) delete mode 100644 spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java delete mode 100644 spring-hibernate3/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IChildDao.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IFooDao.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IParentDao.java rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/dao/common/AbstractHibernateDao.java (96%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/dao/common/IOperations.java (85%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/dao/impl/ChildDao.java (63%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/dao/impl/FooDao.java (63%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/dao/impl/ParentDao.java (63%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/model/Child.java (94%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/model/Foo.java (97%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/model/Parent.java (96%) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/service/IChildService.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/service/IFooService.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/service/IParentService.java rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/service/common/AbstractService.java (87%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/service/impl/ChildService.java (52%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/service/impl/FooService.java (52%) rename spring-hibernate4/src/main/java/org/baeldung/{spring => }/persistence/service/impl/ParentService.java (53%) rename spring-hibernate4/src/main/java/org/baeldung/spring/{persistence/config => }/HibernateXmlConfig.java (92%) rename spring-hibernate4/src/main/java/org/baeldung/spring/{persistence/config => }/PersistenceConfig.java (98%) delete mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java delete mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java delete mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java delete mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java delete mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java delete mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java delete mode 100644 spring-hibernate4/src/main/webapp/WEB-INF/mvc-servlet.xml delete mode 100644 spring-hibernate4/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-hibernate3/.springBeans b/spring-hibernate3/.springBeans index 7623a7e88836..b854542b588b 100644 --- a/spring-hibernate3/.springBeans +++ b/spring-hibernate3/.springBeans @@ -7,7 +7,6 @@ - src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/AbstractHibernateDao.java similarity index 97% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java rename to spring-hibernate3/src/main/java/org/baeldung/persistence/dao/AbstractHibernateDao.java index 9a579245d39d..0f8b13289172 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/AbstractHibernateDao.java +++ b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/AbstractHibernateDao.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.persistence.dao; import java.io.Serializable; import java.util.List; diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/FooDao.java similarity index 70% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java rename to spring-hibernate3/src/main/java/org/baeldung/persistence/dao/FooDao.java index 1c76ed1f0405..23de04169eb4 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/FooDao.java +++ b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/FooDao.java @@ -1,6 +1,6 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.persistence.dao; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.model.Foo; import org.springframework.stereotype.Repository; @Repository diff --git a/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..6a3bd95d71b8 --- /dev/null +++ b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IFooDao.java @@ -0,0 +1,7 @@ +package org.baeldung.persistence.dao; + +import org.baeldung.persistence.model.Foo; + +public interface IFooDao extends IOperations { + // +} diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IOperations.java similarity index 87% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java rename to spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IOperations.java index 51591c57b433..8c5a5e1aed77 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IOperations.java +++ b/spring-hibernate3/src/main/java/org/baeldung/persistence/dao/IOperations.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.dao; +package org.baeldung.persistence.dao; import java.io.Serializable; import java.util.List; diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate3/src/main/java/org/baeldung/persistence/model/Foo.java similarity index 97% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java rename to spring-hibernate3/src/main/java/org/baeldung/persistence/model/Foo.java index 2043d087e024..8e1dee33e845 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate3/src/main/java/org/baeldung/persistence/model/Foo.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.model; +package org.baeldung.persistence.model; import java.io.Serializable; diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate3/src/main/java/org/baeldung/persistence/service/FooService.java similarity index 73% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-hibernate3/src/main/java/org/baeldung/persistence/service/FooService.java index 1d3b5c4a0201..b07698c43854 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate3/src/main/java/org/baeldung/persistence/service/FooService.java @@ -1,7 +1,7 @@ -package org.baeldung.spring.persistence.service; +package org.baeldung.persistence.service; -import org.baeldung.spring.persistence.dao.IFooDao; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.dao.IFooDao; +import org.baeldung.persistence.model.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java similarity index 98% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java index 769f3132f522..b205c27cdc63 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.config; +package org.baeldung.spring; import java.util.Properties; diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java similarity index 91% rename from spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java rename to spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java index e38b57fbcaf8..c535d1b1bd1b 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/config/PersistenceXmlConfig.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ImportResource; diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java deleted file mode 100644 index eea1f17b5a0d..000000000000 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.baeldung.spring.persistence.dao; - -import org.baeldung.spring.persistence.model.Foo; - -public interface IFooDao extends IOperations { - // -} diff --git a/spring-hibernate3/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate3/src/main/webapp/WEB-INF/mvc-servlet.xml deleted file mode 100644 index 5463820874c8..000000000000 --- a/spring-hibernate3/src/main/webapp/WEB-INF/mvc-servlet.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/spring-hibernate3/src/main/webapp/WEB-INF/web.xml b/spring-hibernate3/src/main/webapp/WEB-INF/web.xml index e0de9aefd45a..5db6f59746c4 100644 --- a/spring-hibernate3/src/main/webapp/WEB-INF/web.xml +++ b/spring-hibernate3/src/main/webapp/WEB-INF/web.xml @@ -1,17 +1,18 @@ - - Spring MVC Application - - contextClass - + + Spring Hibernate 3 Application + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring.persistence.config - - - org.springframework.web.context.ContextLoaderListener - + + + contextConfigLocation + org.baeldung.spring + + + org.springframework.web.context.ContextLoaderListener + \ No newline at end of file diff --git a/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 576f536adc80..974498535652 100644 --- a/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate3/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -2,8 +2,9 @@ import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; -import org.baeldung.spring.persistence.config.PersistenceConfig; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.model.Foo; +import org.baeldung.persistence.service.FooService; +import org.baeldung.spring.PersistenceConfig; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/spring-hibernate4/.springBeans b/spring-hibernate4/.springBeans index 7623a7e88836..b854542b588b 100644 --- a/spring-hibernate4/.springBeans +++ b/spring-hibernate4/.springBeans @@ -7,7 +7,6 @@ - src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IChildDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IChildDao.java new file mode 100644 index 000000000000..3bc0dc1fc497 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IChildDao.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.dao; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Child; + +public interface IChildDao extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..fc3928d8a648 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IFooDao.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.dao; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Foo; + +public interface IFooDao extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IParentDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IParentDao.java new file mode 100644 index 000000000000..09158a414399 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/IParentDao.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.dao; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Parent; + +public interface IParentDao extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java similarity index 96% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java index 3476b8cadc9e..048253d17a75 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.dao.common; +package org.baeldung.persistence.dao.common; import java.io.Serializable; import java.util.List; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IOperations.java similarity index 85% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IOperations.java index 12ac048d745c..1c84b06c8569 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IOperations.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.dao.common; +package org.baeldung.persistence.dao.common; import java.io.Serializable; import java.util.List; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/ChildDao.java similarity index 63% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/ChildDao.java index 380787823c92..d9c8fdceecdf 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ChildDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/ChildDao.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.persistence.dao.impl; +package org.baeldung.persistence.dao.impl; -import org.baeldung.spring.persistence.dao.IChildDao; -import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; -import org.baeldung.spring.persistence.model.Child; +import org.baeldung.persistence.dao.IChildDao; +import org.baeldung.persistence.dao.common.AbstractHibernateDao; +import org.baeldung.persistence.model.Child; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/FooDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/FooDao.java similarity index 63% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/FooDao.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/FooDao.java index c083b41799b5..4441215a94d0 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/FooDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/FooDao.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.persistence.dao.impl; +package org.baeldung.persistence.dao.impl; -import org.baeldung.spring.persistence.dao.IFooDao; -import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.dao.IFooDao; +import org.baeldung.persistence.dao.common.AbstractHibernateDao; +import org.baeldung.persistence.model.Foo; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ParentDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/ParentDao.java similarity index 63% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ParentDao.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/ParentDao.java index 6604c7a77430..003ec627411a 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/impl/ParentDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/impl/ParentDao.java @@ -1,8 +1,8 @@ -package org.baeldung.spring.persistence.dao.impl; +package org.baeldung.persistence.dao.impl; -import org.baeldung.spring.persistence.dao.IParentDao; -import org.baeldung.spring.persistence.dao.common.AbstractHibernateDao; -import org.baeldung.spring.persistence.model.Parent; +import org.baeldung.persistence.dao.IParentDao; +import org.baeldung.persistence.dao.common.AbstractHibernateDao; +import org.baeldung.persistence.model.Parent; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/model/Child.java similarity index 94% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/model/Child.java index 978502242c15..4eec4cf1d3a4 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Child.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/model/Child.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.model; +package org.baeldung.persistence.model; import java.io.Serializable; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/model/Foo.java similarity index 97% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/model/Foo.java index 2043d087e024..8e1dee33e845 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Foo.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/model/Foo.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.model; +package org.baeldung.persistence.model; import java.io.Serializable; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/model/Parent.java similarity index 96% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/model/Parent.java index 5a8702896001..19e405615dfe 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/model/Parent.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/model/Parent.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.model; +package org.baeldung.persistence.model; import java.io.Serializable; diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IChildService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IChildService.java new file mode 100644 index 000000000000..c6c5e2cfb177 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IChildService.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.service; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Child; + +public interface IChildService extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IFooService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IFooService.java new file mode 100644 index 000000000000..877432045056 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IFooService.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.service; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Foo; + +public interface IFooService extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IParentService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IParentService.java new file mode 100644 index 000000000000..1782c281d2fe --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/IParentService.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.service; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Parent; + +public interface IParentService extends IOperations { + // +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/common/AbstractService.java similarity index 87% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/service/common/AbstractService.java index 6d0f2f49d623..3b32bc3ebb59 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/common/AbstractService.java @@ -1,9 +1,9 @@ -package org.baeldung.spring.persistence.service.common; +package org.baeldung.persistence.service.common; import java.io.Serializable; import java.util.List; -import org.baeldung.spring.persistence.dao.common.IOperations; +import org.baeldung.persistence.dao.common.IOperations; import org.springframework.transaction.annotation.Transactional; @Transactional diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/ChildService.java similarity index 52% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/ChildService.java index d28682fdfd7c..2ea64285b305 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ChildService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/ChildService.java @@ -1,10 +1,10 @@ -package org.baeldung.spring.persistence.service.impl; +package org.baeldung.persistence.service.impl; -import org.baeldung.spring.persistence.dao.IChildDao; -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Child; -import org.baeldung.spring.persistence.service.IChildService; -import org.baeldung.spring.persistence.service.common.AbstractService; +import org.baeldung.persistence.dao.IChildDao; +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Child; +import org.baeldung.persistence.service.IChildService; +import org.baeldung.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/FooService.java similarity index 52% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/FooService.java index 19223a82ca4a..4b76eba3e50f 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/FooService.java @@ -1,10 +1,10 @@ -package org.baeldung.spring.persistence.service.impl; +package org.baeldung.persistence.service.impl; -import org.baeldung.spring.persistence.dao.IFooDao; -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Foo; -import org.baeldung.spring.persistence.service.IFooService; -import org.baeldung.spring.persistence.service.common.AbstractService; +import org.baeldung.persistence.dao.IFooDao; +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Foo; +import org.baeldung.persistence.service.IFooService; +import org.baeldung.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ParentService.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/ParentService.java similarity index 53% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ParentService.java rename to spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/ParentService.java index 84d42772993c..73239f1d0045 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/ParentService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/service/impl/ParentService.java @@ -1,10 +1,10 @@ -package org.baeldung.spring.persistence.service.impl; +package org.baeldung.persistence.service.impl; -import org.baeldung.spring.persistence.dao.IParentDao; -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Parent; -import org.baeldung.spring.persistence.service.IParentService; -import org.baeldung.spring.persistence.service.common.AbstractService; +import org.baeldung.persistence.dao.IParentDao; +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Parent; +import org.baeldung.persistence.service.IParentService; +import org.baeldung.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/HibernateXmlConfig.java similarity index 92% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/HibernateXmlConfig.java index 51fbcd27c16d..10ead2fd6c1b 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/HibernateXmlConfig.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/HibernateXmlConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java similarity index 98% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java index 3157c92e9924..765a37962f62 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/config/PersistenceConfig.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.persistence.config; +package org.baeldung.spring; import java.util.Properties; diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java deleted file mode 100644 index 0a2180bed3cd..000000000000 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IChildDao.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.spring.persistence.dao; - -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Child; - -public interface IChildDao extends IOperations { - // -} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java deleted file mode 100644 index 646b3af228b6..000000000000 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IFooDao.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.spring.persistence.dao; - -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Foo; - -public interface IFooDao extends IOperations { - // -} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java deleted file mode 100644 index 1b35ba9f018e..000000000000 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/IParentDao.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.spring.persistence.dao; - -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Parent; - -public interface IParentDao extends IOperations { - // -} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java deleted file mode 100644 index 785d581c799f..000000000000 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IChildService.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.spring.persistence.service; - -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Child; - -public interface IChildService extends IOperations { - // -} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java deleted file mode 100644 index 59d532aa5459..000000000000 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IFooService.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.spring.persistence.service; - -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Foo; - -public interface IFooService extends IOperations { - // -} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java deleted file mode 100644 index 6d37d75354f9..000000000000 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/IParentService.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.spring.persistence.service; - -import org.baeldung.spring.persistence.dao.common.IOperations; -import org.baeldung.spring.persistence.model.Parent; - -public interface IParentService extends IOperations { - // -} diff --git a/spring-hibernate4/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-hibernate4/src/main/webapp/WEB-INF/mvc-servlet.xml deleted file mode 100644 index 5463820874c8..000000000000 --- a/spring-hibernate4/src/main/webapp/WEB-INF/mvc-servlet.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/spring-hibernate4/src/main/webapp/WEB-INF/view/sample.jsp b/spring-hibernate4/src/main/webapp/WEB-INF/view/sample.jsp deleted file mode 100644 index 7cc14b5dcddf..000000000000 --- a/spring-hibernate4/src/main/webapp/WEB-INF/view/sample.jsp +++ /dev/null @@ -1,7 +0,0 @@ - - - - -

This is the body of the sample view

- - \ No newline at end of file diff --git a/spring-hibernate4/src/main/webapp/WEB-INF/web.xml b/spring-hibernate4/src/main/webapp/WEB-INF/web.xml index e0de9aefd45a..64b5f6826d96 100644 --- a/spring-hibernate4/src/main/webapp/WEB-INF/web.xml +++ b/spring-hibernate4/src/main/webapp/WEB-INF/web.xml @@ -1,17 +1,18 @@ - - Spring MVC Application - - contextClass - + + Spring Hibernate 4 Application + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring.persistence.config - - - org.springframework.web.context.ContextLoaderListener - + + + contextConfigLocation + org.baeldung.spring + + + org.springframework.web.context.ContextLoaderListener + \ No newline at end of file diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 69d094f5d893..99dd630803d5 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -2,8 +2,9 @@ import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; -import org.baeldung.spring.persistence.config.PersistenceConfig; -import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.persistence.model.Foo; +import org.baeldung.persistence.service.IFooService; +import org.baeldung.spring.PersistenceConfig; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java index 753d94ac79ab..1c219ac2fad5 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/ParentServicePersistenceIntegrationTest.java @@ -1,8 +1,10 @@ package org.baeldung.spring.persistence.service; -import org.baeldung.spring.persistence.config.PersistenceConfig; -import org.baeldung.spring.persistence.model.Child; -import org.baeldung.spring.persistence.model.Parent; +import org.baeldung.persistence.model.Child; +import org.baeldung.persistence.model.Parent; +import org.baeldung.persistence.service.IChildService; +import org.baeldung.persistence.service.IParentService; +import org.baeldung.spring.PersistenceConfig; import org.hibernate.SessionFactory; import org.junit.Test; import org.junit.runner.RunWith; From 2cf72a18ee58f2e79a26e775bae39cf482b1b366 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 15:09:13 +0300 Subject: [PATCH 125/206] generic dao work --- .../dao/common/AbstractHibernateDao.java | 2 +- .../persistence/dao/common/GenericHibernateDao.java | 13 +++++++++++++ .../persistence/dao/common/IGenericDao.java | 7 +++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java create mode 100644 spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java index 048253d17a75..65e57afcb3e5 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java @@ -24,7 +24,7 @@ protected final void setClazz(final Class clazzToSet) { @Override public final T findOne(final long id) { - return ((T) getCurrentSession().get(clazz, id)); + return (T) getCurrentSession().get(clazz, id); } @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java new file mode 100644 index 000000000000..47ed13087808 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java @@ -0,0 +1,13 @@ +package org.baeldung.persistence.dao.common; + +import java.io.Serializable; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Repository; + +@Repository +@Scope(BeanDefinition.SCOPE_PROTOTYPE) +public class GenericHibernateDao extends AbstractHibernateDao implements IGenericDao { + // +} \ No newline at end of file diff --git a/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java new file mode 100644 index 000000000000..b7876deea491 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java @@ -0,0 +1,7 @@ +package org.baeldung.persistence.dao.common; + +import java.io.Serializable; + +public interface IGenericDao extends IOperations { + // +} From a63560bb9fb2db5398df1475cf84779bd129e49e Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 1 Jun 2013 19:40:30 +0300 Subject: [PATCH 126/206] security work --- spring-security-basic-auth/README.md | 4 ++-- .../src/main/resources/webSecurityConfig.xml | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/spring-security-basic-auth/README.md b/spring-security-basic-auth/README.md index d013b51e1807..61f509f9e5a3 100644 --- a/spring-security-basic-auth/README.md +++ b/spring-security-basic-auth/README.md @@ -1,5 +1,5 @@ ========= Relevant Article: -- [Spring Security – security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) - +- [Spring Security - security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) +- [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-basic-authentication) diff --git a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml index 7734ea5f56af..2b55ca1c7366 100644 --- a/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-basic-auth/src/main/resources/webSecurityConfig.xml @@ -8,11 +8,9 @@ - - - + From 7175867d2d18bba2d75490dca07ea330f622151c Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 12:17:44 +0300 Subject: [PATCH 127/206] initial work on spring security custom projecyt --- spring-security-custom/.classpath | 31 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-custom/.gitignore | 13 ++ spring-security-custom/.project | 59 +++++ spring-security-custom/.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 ++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 5 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-custom/.springBeans | 14 ++ spring-security-custom/README.md | 5 + spring-security-custom/pom.xml | 215 ++++++++++++++++++ ...uestAwareAuthenticationSuccessHandler.java | 48 ++++ .../RestAuthenticationEntryPoint.java | 23 ++ .../spring/config/ClientWebConfig.java | 17 ++ .../spring/config/SecSecurityConfig.java | 16 ++ .../org/baeldung/spring/config/WebConfig.java | 14 ++ .../src/main/resources/logback.xml | 20 ++ .../src/main/resources/webSecurityConfig.xml | 29 +++ .../src/main/webapp/WEB-INF/api-servlet.xml | 6 + .../src/main/webapp/WEB-INF/web.xml | 50 ++++ .../src/test/resources/.gitignore | 13 ++ 28 files changed, 774 insertions(+) create mode 100644 spring-security-custom/.classpath create mode 100644 spring-security-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-custom/.gitignore create mode 100644 spring-security-custom/.project create mode 100644 spring-security-custom/.settings/.jsdtscope create mode 100644 spring-security-custom/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-custom/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-custom/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-custom/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-custom/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-custom/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-custom/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-custom/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-custom/.springBeans create mode 100644 spring-security-custom/README.md create mode 100644 spring-security-custom/pom.xml create mode 100644 spring-security-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java create mode 100644 spring-security-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java create mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java create mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java create mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java create mode 100644 spring-security-custom/src/main/resources/logback.xml create mode 100644 spring-security-custom/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml create mode 100644 spring-security-custom/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-custom/src/test/resources/.gitignore diff --git a/spring-security-custom/.classpath b/spring-security-custom/.classpath new file mode 100644 index 000000000000..5dea19367768 --- /dev/null +++ b/spring-security-custom/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-custom/.gitignore b/spring-security-custom/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-custom/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-custom/.project b/spring-security-custom/.project new file mode 100644 index 000000000000..4299cd37284c --- /dev/null +++ b/spring-security-custom/.project @@ -0,0 +1,59 @@ + + + spring-security-custom + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-security-custom/.settings/.jsdtscope b/spring-security-custom/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-custom/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-custom/.settings/org.eclipse.jdt.core.prefs b/spring-security-custom/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..df8135651462 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-custom/.settings/org.eclipse.jdt.ui.prefs b/spring-security-custom/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-custom/.settings/org.eclipse.m2e.core.prefs b/spring-security-custom/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-custom/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-custom/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-custom/.settings/org.eclipse.wst.common.component b/spring-security-custom/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..6322536a9b64 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-custom/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-custom/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..b46bc511b943 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-custom/.settings/org.eclipse.wst.validation.prefs b/spring-security-custom/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-custom/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-custom/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-custom/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-custom/.springBeans b/spring-security-custom/.springBeans new file mode 100644 index 000000000000..d11fb034bdc0 --- /dev/null +++ b/spring-security-custom/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/api-servlet.xml + + + + diff --git a/spring-security-custom/README.md b/spring-security-custom/README.md new file mode 100644 index 000000000000..a7dd66cfbadc --- /dev/null +++ b/spring-security-custom/README.md @@ -0,0 +1,5 @@ +Spring Security for REST +========= + +Relevant Articles: +- [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) \ No newline at end of file diff --git a/spring-security-custom/pom.xml b/spring-security-custom/pom.xml new file mode 100644 index 000000000000..d2083cc1b1a1 --- /dev/null +++ b/spring-security-custom/pom.xml @@ -0,0 +1,215 @@ + + 4.0.0 + org.baeldung + spring-security-custom + 0.1-SNAPSHOT + + spring-security-custom + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-custom + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + 1.4.2 + 2.14.1 + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java new file mode 100644 index 000000000000..698052fa2b00 --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java @@ -0,0 +1,48 @@ +package org.baeldung.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; +import org.springframework.security.web.savedrequest.HttpSessionRequestCache; +import org.springframework.security.web.savedrequest.RequestCache; +import org.springframework.security.web.savedrequest.SavedRequest; +import org.springframework.util.StringUtils; + +public class MySavedRequestAwareAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { + + private RequestCache requestCache = new HttpSessionRequestCache(); + + @Override + public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws ServletException, IOException { + final SavedRequest savedRequest = requestCache.getRequest(request, response); + + if (savedRequest == null) { + super.onAuthenticationSuccess(request, response, authentication); + + return; + } + final String targetUrlParameter = getTargetUrlParameter(); + if (isAlwaysUseDefaultTargetUrl() || (targetUrlParameter != null && StringUtils.hasText(request.getParameter(targetUrlParameter)))) { + requestCache.removeRequest(request, response); + super.onAuthenticationSuccess(request, response, authentication); + + return; + } + + clearAuthenticationAttributes(request); + + // Use the DefaultSavedRequest URL + // final String targetUrl = savedRequest.getRedirectUrl(); + // logger.debug("Redirecting to DefaultSavedRequest Url: " + targetUrl); + // getRedirectStrategy().sendRedirect(request, response, targetUrl); + } + + public void setRequestCache(final RequestCache requestCache) { + this.requestCache = requestCache; + } +} diff --git a/spring-security-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java b/spring-security-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java new file mode 100644 index 000000000000..77aa32ff979e --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java @@ -0,0 +1,23 @@ +package org.baeldung.security; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +/** + * The Entry Point will not redirect to any sort of Login - it will return the 401 + */ +@Component +public final class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { + + @Override + public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException { + response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); + } + +} \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java new file mode 100644 index 000000000000..1a87fd8a09d7 --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@EnableWebMvc +@Configuration +public class ClientWebConfig extends WebMvcConfigurerAdapter { + + public ClientWebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java new file mode 100644 index 000000000000..8d5dfb04092e --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +@ComponentScan("org.baeldung.security") +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java new file mode 100644 index 000000000000..33efc93b2b44 --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.web") +public class WebConfig { + + public WebConfig() { + super(); + } + +} diff --git a/spring-security-custom/src/main/resources/logback.xml b/spring-security-custom/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-security-custom/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..f53b15752c57 --- /dev/null +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml b/spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-custom/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..d7e554666d10 --- /dev/null +++ b/spring-security-custom/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,50 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + api + org.springframework.web.servlet.DispatcherServlet + 1 + + + api + /api/* + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + + + + \ No newline at end of file diff --git a/spring-security-custom/src/test/resources/.gitignore b/spring-security-custom/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-custom/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From a2e7741d7524e2f7b985d3cf3909a66e56bedff0 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 12:22:09 +0300 Subject: [PATCH 128/206] custom authentication provider sample --- .../CustomAuthenticationProvider.java | 42 +++++++++++++++++++ .../src/main/resources/webSecurityConfig.xml | 7 +--- 2 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 spring-security-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java diff --git a/spring-security-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java b/spring-security-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java new file mode 100644 index 000000000000..e2ea9842afc0 --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java @@ -0,0 +1,42 @@ +package org.baeldung.security; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.stereotype.Component; + +@Component +public class CustomAuthenticationProvider implements AuthenticationProvider { + + public CustomAuthenticationProvider() { + super(); + } + + // API + + @Override + public Authentication authenticate(final Authentication authentication) throws AuthenticationException { + final String name = authentication.getName(); + final String password = authentication.getCredentials().toString(); + if (name.equals("admin") && password.equals("system")) { + final List grantedAuths = new ArrayList<>(); + grantedAuths.add(new SimpleGrantedAuthority("ROLE_USER")); + final Authentication auth = new UsernamePasswordAuthenticationToken(name, password, grantedAuths); + return auth; + } else { + return null; + } + } + + @Override + public boolean supports(final Class authentication) { + return authentication.equals(UsernamePasswordAuthenticationToken.class); + } + +} diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml index f53b15752c57..b5d0c46e3f6e 100644 --- a/spring-security-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -18,12 +18,7 @@ - - - - - - + \ No newline at end of file From e5e92b6ae0232b614ce80a28af858cfc6883e33f Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 19:10:14 +0300 Subject: [PATCH 129/206] security work --- .../java/org/baeldung/spring/MvcConfig.java | 40 +++++++++++++++++++ .../{config => }/SecSecurityConfig.java | 2 +- .../spring/config/ClientWebConfig.java | 17 -------- .../org/baeldung/spring/config/WebConfig.java | 14 ------- .../src/main/resources/webSecurityConfig.xml | 2 +- .../security/CustomLogoutSuccessHandler.java | 2 +- .../ClientWebConfig.java => MvcConfig.java} | 6 +-- .../{web/config => }/SecSecurityConfig.java | 2 +- 8 files changed, 47 insertions(+), 38 deletions(-) create mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java rename spring-security-custom/src/main/java/org/baeldung/spring/{config => }/SecSecurityConfig.java (91%) delete mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java delete mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java rename spring-security-login/src/main/java/org/baeldung/{spring => }/security/CustomLogoutSuccessHandler.java (96%) rename spring-security-login/src/main/java/org/baeldung/spring/{web/config/ClientWebConfig.java => MvcConfig.java} (89%) rename spring-security-login/src/main/java/org/baeldung/spring/{web/config => }/SecSecurityConfig.java (87%) diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java new file mode 100644 index 000000000000..4570857b306d --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -0,0 +1,40 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class MvcConfig extends WebMvcConfigurerAdapter { + + public MvcConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/login.html"); + registry.addViewController("/homepage.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 91% rename from spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java rename to spring-security-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java index 8d5dfb04092e..4ce80dab9f1c 100644 --- a/spring-security-custom/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java +++ b/spring-security-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java deleted file mode 100644 index 1a87fd8a09d7..000000000000 --- a/spring-security-custom/src/main/java/org/baeldung/spring/config/ClientWebConfig.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.baeldung.spring.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -@EnableWebMvc -@Configuration -public class ClientWebConfig extends WebMvcConfigurerAdapter { - - public ClientWebConfig() { - super(); - } - - // API - -} \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java deleted file mode 100644 index 33efc93b2b44..000000000000 --- a/spring-security-custom/src/main/java/org/baeldung/spring/config/WebConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.baeldung.spring.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("org.baeldung.web") -public class WebConfig { - - public WebConfig() { - super(); - } - -} diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml index b5d0c46e3f6e..85476a2a21fd 100644 --- a/spring-security-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -17,7 +17,7 @@ - + diff --git a/spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java b/spring-security-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java similarity index 96% rename from spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java rename to spring-security-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java index 4d19744033d0..7360b4e03f07 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/security/CustomLogoutSuccessHandler.java +++ b/spring-security-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.security; +package org.baeldung.security; import java.io.IOException; diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/MvcConfig.java similarity index 89% rename from spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java rename to spring-security-login/src/main/java/org/baeldung/spring/MvcConfig.java index 316759b24b3a..f6f3e2a429cb 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/web/config/ClientWebConfig.java +++ b/spring-security-login/src/main/java/org/baeldung/spring/MvcConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -11,9 +11,9 @@ @EnableWebMvc @Configuration -public class ClientWebConfig extends WebMvcConfigurerAdapter { +public class MvcConfig extends WebMvcConfigurerAdapter { - public ClientWebConfig() { + public MvcConfig() { super(); } diff --git a/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java b/spring-security-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 87% rename from spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java rename to spring-security-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java index a21a05c17d2d..4da114c78b62 100644 --- a/spring-security-login/src/main/java/org/baeldung/spring/web/config/SecSecurityConfig.java +++ b/spring-security-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.web.config; +package org.baeldung.spring; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; From 56c520a6941ef35147b52b4bb37068e53eba2335 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 19:15:40 +0300 Subject: [PATCH 130/206] security work on custom project --- spring-security-custom/.springBeans | 2 +- .../java/org/baeldung/spring/MvcConfig.java | 2 +- .../{api-servlet.xml => mvc-servlet.xml} | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 9 +++ .../src/main/webapp/WEB-INF/web.xml | 8 +- .../src/main/webapp/WEB-INF/web.xml | 78 +++++++++---------- 6 files changed, 53 insertions(+), 46 deletions(-) rename spring-security-custom/src/main/webapp/WEB-INF/{api-servlet.xml => mvc-servlet.xml} (100%) create mode 100644 spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-custom/.springBeans b/spring-security-custom/.springBeans index d11fb034bdc0..7623a7e88836 100644 --- a/spring-security-custom/.springBeans +++ b/spring-security-custom/.springBeans @@ -7,7 +7,7 @@ - src/main/webapp/WEB-INF/api-servlet.xml + src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java index 4570857b306d..c14cf3de1176 100644 --- a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java +++ b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -23,7 +23,7 @@ public MvcConfig() { public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); - registry.addViewController("/login.html"); + // registry.addViewController("/login.html"); registry.addViewController("/homepage.html"); } diff --git a/spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml b/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml rename to spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp new file mode 100644 index 000000000000..5504d2f134ee --- /dev/null +++ b/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp @@ -0,0 +1,9 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + +

This is the body of the sample view

+ ">Logout + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-custom/src/main/webapp/WEB-INF/web.xml index d7e554666d10..c8d785a29842 100644 --- a/spring-security-custom/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-custom/src/main/webapp/WEB-INF/web.xml @@ -15,7 +15,7 @@ contextConfigLocation - org.baeldung.spring.config + org.baeldung.spring @@ -24,13 +24,13 @@ - api + mvc org.springframework.web.servlet.DispatcherServlet 1 - api - /api/* + mvc + / diff --git a/spring-security-login/src/main/webapp/WEB-INF/web.xml b/spring-security-login/src/main/webapp/WEB-INF/web.xml index 6274cdd9fe95..c8d785a29842 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-login/src/main/webapp/WEB-INF/web.xml @@ -1,52 +1,50 @@ - + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> - Spring MVC Application + Spring MVC Application - - - contextClass - + + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring.web.config - + + + contextConfigLocation + org.baeldung.spring + - - org.springframework.web.context.ContextLoaderListener - + + org.springframework.web.context.ContextLoaderListener + - - - mvc - org.springframework.web.servlet.DispatcherServlet - 1 - - - mvc - / - + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + - - - springSecurityFilterChain - org.springframework.web.filter.DelegatingFilterProxy - - - springSecurityFilterChain - /* - + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + - - - + + + \ No newline at end of file From 1696627374a4772f4360f5a28bdc618b73b36ebb Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 19:27:41 +0300 Subject: [PATCH 131/206] security work --- .../java/org/baeldung/spring/MvcConfig.java | 2 +- .../src/main/resources/webSecurityConfig.xml | 31 ++++++++++++------- .../src/main/webapp/WEB-INF/view/login.jsp | 26 ++++++++++++++++ .../src/main/resources/webSecurityConfig.xml | 12 +++---- 4 files changed, 51 insertions(+), 20 deletions(-) create mode 100644 spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java index c14cf3de1176..4570857b306d 100644 --- a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java +++ b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -23,7 +23,7 @@ public MvcConfig() { public void addViewControllers(final ViewControllerRegistry registry) { super.addViewControllers(registry); - // registry.addViewController("/login.html"); + registry.addViewController("/login.html"); registry.addViewController("/homepage.html"); } diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml index 85476a2a21fd..8f833abc2938 100644 --- a/spring-security-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -1,24 +1,31 @@ + http://www.springframework.org/schema/security + http://www.springframework.org/schema/security/spring-security-3.1.xsd + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - - + + + + - + - - - - + + + + + + + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp new file mode 100644 index 000000000000..013ceccb4e4d --- /dev/null +++ b/spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp @@ -0,0 +1,26 @@ + + + + +

Login

+ +
+ + + + + + + + + + + + + +
User:
Password:
+ +
+ + + \ No newline at end of file diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index e2b63fe45820..6051a8505bba 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -2,16 +2,14 @@ + http://www.springframework.org/schema/security + http://www.springframework.org/schema/security/spring-security-3.1.xsd + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - - - - - + From d3bbcc89fbf997de7c8ebf0e96aabebb519415e0 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 19:29:00 +0300 Subject: [PATCH 132/206] security work --- .../src/main/resources/webSecurityConfig.xml | 11 +---------- .../src/main/webapp/WEB-INF/view/homepage.jsp | 1 - 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml index 8f833abc2938..d6840d0fcce0 100644 --- a/spring-security-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -7,7 +7,6 @@ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - @@ -17,15 +16,7 @@ - - - - - + - - - - \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp index 5504d2f134ee..a958bc0a0892 100644 --- a/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp +++ b/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp @@ -4,6 +4,5 @@

This is the body of the sample view

- ">Logout \ No newline at end of file From 124f0492ed56b800399033d2635e47d4b76109fd Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Sun, 2 Jun 2013 19:50:09 +0300 Subject: [PATCH 133/206] compiler work --- spring-security-custom/pom.xml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spring-security-custom/pom.xml b/spring-security-custom/pom.xml index d2083cc1b1a1..4477b0b41cec 100644 --- a/spring-security-custom/pom.xml +++ b/spring-security-custom/pom.xml @@ -136,7 +136,19 @@ - + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + true + source + + + org.apache.maven.plugins maven-surefire-plugin From d28c7a14f864e19d6587692f79fe28ea76813129 Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Sun, 2 Jun 2013 19:59:08 +0300 Subject: [PATCH 134/206] security work --- .../spring/{config => }/FrontendConfig.java | 2 +- .../{config => }/PersistenceConfig.java | 2 +- .../{config => }/SecSecurityConfig.java | 2 +- .../spring/{config => }/WebConfig.java | 2 +- .../src/main/webapp/WEB-INF/web.xml | 2 +- .../java/org/baeldung/spring/WebConfig.java | 17 ++++++++++ .../web/controller/FooController.java | 34 +++++++++++++++++++ .../main/java/org/baeldung/web/dto/Foo.java | 11 ++++++ .../spring/{config => }/ClientWebConfig.java | 2 +- .../{config => }/SecSecurityConfig.java | 2 +- .../spring/{config => }/WebConfig.java | 2 +- .../src/main/webapp/WEB-INF/web.xml | 2 +- 12 files changed, 71 insertions(+), 9 deletions(-) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{config => }/FrontendConfig.java (97%) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{config => }/PersistenceConfig.java (88%) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{config => }/SecSecurityConfig.java (91%) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{config => }/WebConfig.java (91%) create mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java create mode 100644 spring-security-custom/src/main/java/org/baeldung/web/controller/FooController.java create mode 100644 spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java rename spring-security-rest/src/main/java/org/baeldung/spring/{config => }/ClientWebConfig.java (91%) rename spring-security-rest/src/main/java/org/baeldung/spring/{config => }/SecSecurityConfig.java (91%) rename spring-security-rest/src/main/java/org/baeldung/spring/{config => }/WebConfig.java (87%) diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/FrontendConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/FrontendConfig.java similarity index 97% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/config/FrontendConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/FrontendConfig.java index 693b1006b5ce..b353405fc1ff 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/FrontendConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/FrontendConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java similarity index 88% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/config/PersistenceConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java index 913c5d26ceb9..4ea0053f4845 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/PersistenceConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 91% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java index 8d5dfb04092e..4ce80dab9f1c 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/WebConfig.java similarity index 91% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/WebConfig.java index 20f3bf8f1839..fa6f5f6d5626 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/config/WebConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/WebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml index adb3e17d7d01..d4ef6ebb8b54 100644 --- a/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml @@ -17,7 +17,7 @@ contextConfigLocation - org.baeldung.spring.config + org.baeldung.spring diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java new file mode 100644 index 000000000000..fa6f5f6d5626 --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ComponentScan("org.baeldung.web") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-custom/src/main/java/org/baeldung/web/controller/FooController.java new file mode 100644 index 000000000000..d6eeea5f771d --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/web/controller/FooController.java @@ -0,0 +1,34 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletResponse; + +import org.baeldung.web.dto.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.util.UriComponentsBuilder; + +@Controller +@RequestMapping(value = "/foo") +public class FooController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public FooController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { + return new Foo(); + } + +} diff --git a/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java new file mode 100644 index 000000000000..352045989daa --- /dev/null +++ b/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java @@ -0,0 +1,11 @@ +package org.baeldung.web.dto; + +import java.io.Serializable; + +public class Foo implements Serializable { + + public Foo() { + super(); + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/ClientWebConfig.java similarity index 91% rename from spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java rename to spring-security-rest/src/main/java/org/baeldung/spring/ClientWebConfig.java index 1a87fd8a09d7..601ba6633040 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/config/ClientWebConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/ClientWebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 91% rename from spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java rename to spring-security-rest/src/main/java/org/baeldung/spring/SecSecurityConfig.java index 8d5dfb04092e..4ce80dab9f1c 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/config/SecSecurityConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java similarity index 87% rename from spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java rename to spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java index 33efc93b2b44..29ddb3eaecf1 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/config/WebConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring.config; +package org.baeldung.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-rest/src/main/webapp/WEB-INF/web.xml b/spring-security-rest/src/main/webapp/WEB-INF/web.xml index d7e554666d10..fe62026bc7d6 100644 --- a/spring-security-rest/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-rest/src/main/webapp/WEB-INF/web.xml @@ -15,7 +15,7 @@ contextConfigLocation - org.baeldung.spring.config + org.baeldung.spring From 0eea508ede08428700915ef7edd2b2ee2bcb7c5b Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Sun, 2 Jun 2013 20:08:13 +0300 Subject: [PATCH 135/206] overall security cleanup and fixes --- spring-all/pom.xml | 11 +++++++- spring-security-custom/.springBeans | 2 +- .../java/org/baeldung/spring/MvcConfig.java | 3 +-- .../src/main/resources/webSecurityConfig.xml | 26 +++++++++++-------- .../{mvc-servlet.xml => api-servlet.xml} | 0 .../src/main/webapp/WEB-INF/web.xml | 6 ++--- 6 files changed, 30 insertions(+), 18 deletions(-) rename spring-security-custom/src/main/webapp/WEB-INF/{mvc-servlet.xml => api-servlet.xml} (100%) diff --git a/spring-all/pom.xml b/spring-all/pom.xml index 7e93da8b647c..30dd39c40012 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -131,7 +131,16 @@ - + + + org.apache.maven.plugins + maven-war-plugin + 2.3 + + false + + + org.apache.maven.plugins maven-surefire-plugin diff --git a/spring-security-custom/.springBeans b/spring-security-custom/.springBeans index 7623a7e88836..d11fb034bdc0 100644 --- a/spring-security-custom/.springBeans +++ b/spring-security-custom/.springBeans @@ -7,7 +7,7 @@ - src/main/webapp/WEB-INF/mvc-servlet.xml + src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java index 4570857b306d..64bdf249445b 100644 --- a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java +++ b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -1,7 +1,6 @@ package org.baeldung.spring; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; @@ -9,8 +8,8 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; +// @Configuration @EnableWebMvc -@Configuration public class MvcConfig extends WebMvcConfigurerAdapter { public MvcConfig() { diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml index d6840d0fcce0..590adab8cee4 100644 --- a/spring-security-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -1,22 +1,26 @@ - - - - + + + - + + - + - - - + + + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml similarity index 100% rename from spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-custom/src/main/webapp/WEB-INF/web.xml index c8d785a29842..fe62026bc7d6 100644 --- a/spring-security-custom/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-custom/src/main/webapp/WEB-INF/web.xml @@ -24,13 +24,13 @@ - mvc + api org.springframework.web.servlet.DispatcherServlet 1 - mvc - / + api + /api/* From 79269f8a4328fe20f51a8ff13b279a424538e899 Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Sun, 2 Jun 2013 20:45:26 +0300 Subject: [PATCH 136/206] security and rest work --- .../{FrontendConfig.java => MvcConfig.java} | 6 +- .../src/main/webapp/WEB-INF/web.xml | 2 +- spring-security-custom/pom.xml | 443 +++++++++--------- .../java/org/baeldung/spring/WebConfig.java | 16 +- .../main/java/org/baeldung/web/dto/Foo.java | 3 + .../src/main/webapp/WEB-INF/web.xml | 78 +-- 6 files changed, 291 insertions(+), 257 deletions(-) rename spring-security-basic-auth/src/main/java/org/baeldung/spring/{FrontendConfig.java => MvcConfig.java} (92%) diff --git a/spring-security-basic-auth/src/main/java/org/baeldung/spring/FrontendConfig.java b/spring-security-basic-auth/src/main/java/org/baeldung/spring/MvcConfig.java similarity index 92% rename from spring-security-basic-auth/src/main/java/org/baeldung/spring/FrontendConfig.java rename to spring-security-basic-auth/src/main/java/org/baeldung/spring/MvcConfig.java index b353405fc1ff..74c11478ee2e 100644 --- a/spring-security-basic-auth/src/main/java/org/baeldung/spring/FrontendConfig.java +++ b/spring-security-basic-auth/src/main/java/org/baeldung/spring/MvcConfig.java @@ -9,11 +9,11 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; -@EnableWebMvc @Configuration -public class FrontendConfig extends WebMvcConfigurerAdapter { +@EnableWebMvc +public class MvcConfig extends WebMvcConfigurerAdapter { - public FrontendConfig() { + public MvcConfig() { super(); } diff --git a/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml index d4ef6ebb8b54..461f32bde524 100644 --- a/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-basic-auth/src/main/webapp/WEB-INF/web.xml @@ -6,7 +6,7 @@ http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> - Spring MVC Application + Spring Security Basic Auth Application diff --git a/spring-security-custom/pom.xml b/spring-security-custom/pom.xml index 4477b0b41cec..dba76c6a143a 100644 --- a/spring-security-custom/pom.xml +++ b/spring-security-custom/pom.xml @@ -1,142 +1,157 @@ - - 4.0.0 - org.baeldung - spring-security-custom - 0.1-SNAPSHOT - - spring-security-custom - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - com.google.guava - guava - ${guava.version} - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-custom - - - src/main/resources - true - - - - - + + 4.0.0 + org.baeldung + spring-security-custom + 0.1-SNAPSHOT + + spring-security-custom + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + org.springframework + spring-oxm + ${org.springframework.version} + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-custom + + + src/main/resources + true + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -148,80 +163,80 @@ source - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 4.2.2.Final - 5.1.25 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.0 - 1.8.9 - - - 1.4.2 - 2.14.1 - + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + 1.4.2 + 2.14.1 + \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java index fa6f5f6d5626..8c3d677af601 100644 --- a/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java +++ b/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java @@ -1,10 +1,16 @@ package org.baeldung.spring; +import java.util.List; + import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration +@EnableWebMvc @ComponentScan("org.baeldung.web") public class WebConfig extends WebMvcConfigurerAdapter { @@ -12,6 +18,14 @@ public WebConfig() { super(); } - // API + // beans + + @Override + public void configureMessageConverters(final List> converters) { + super.configureMessageConverters(converters); + converters.add(new MappingJackson2HttpMessageConverter()); + } + + // } \ No newline at end of file diff --git a/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java index 352045989daa..09c1dac933fe 100644 --- a/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java +++ b/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java @@ -2,6 +2,9 @@ import java.io.Serializable; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement public class Foo implements Serializable { public Foo() { diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-custom/src/main/webapp/WEB-INF/web.xml index fe62026bc7d6..db64386b1480 100644 --- a/spring-security-custom/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-custom/src/main/webapp/WEB-INF/web.xml @@ -1,50 +1,52 @@ - + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" + id="WebApp_ID" version="3.0"> - Spring MVC Application + Spring Security Custom Application - - - contextClass - + + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring - + + + contextConfigLocation + org.baeldung.spring + - - org.springframework.web.context.ContextLoaderListener - + + org.springframework.web.context.ContextLoaderListener + - - - api - org.springframework.web.servlet.DispatcherServlet - 1 - - - api - /api/* - + + + api + org.springframework.web.servlet.DispatcherServlet + 1 + + + api + /api/* + - - - springSecurityFilterChain - org.springframework.web.filter.DelegatingFilterProxy - - - springSecurityFilterChain - /* - + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + - - - + + index.html + \ No newline at end of file From 8dbb7fa83e5656bf1c78a69b0475718f61851564 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 2 Jun 2013 21:10:06 +0300 Subject: [PATCH 137/206] doc work --- spring-security-custom/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-security-custom/README.md b/spring-security-custom/README.md index a7dd66cfbadc..ebf695b9e3ec 100644 --- a/spring-security-custom/README.md +++ b/spring-security-custom/README.md @@ -2,4 +2,5 @@ Spring Security for REST ========= Relevant Articles: -- [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) \ No newline at end of file +- [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) +- [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) \ No newline at end of file From bc0ca7a54c3a71d9a50924b59f92c7e3d0ebfc21 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 17:54:58 +0300 Subject: [PATCH 138/206] git security rest full --- spring-security-rest-full/.classpath | 31 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-rest-full/.gitignore | 13 ++ spring-security-rest-full/.project | 59 +++++ .../.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 ++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 5 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-rest-full/.springBeans | 14 ++ spring-security-rest-full/README.md | 5 + spring-security-rest-full/pom.xml | 216 ++++++++++++++++++ .../persistence/service/FooService.java | 23 ++ .../MyBasicAuthenticationEntryPoint.java | 31 +++ .../java/org/baeldung/spring/MvcConfig.java | 39 ++++ .../baeldung/spring/PersistenceConfig.java | 14 ++ .../baeldung/spring/SecSecurityConfig.java | 16 ++ .../java/org/baeldung/spring/WebConfig.java | 17 ++ .../web/controller/FooController.java | 74 ++++++ .../org/baeldung/web/controller/LinkUtil.java | 30 +++ .../web/controller/ResourceCreated.java | 35 +++ ...esourceCreatedDiscoverabilityListener.java | 35 +++ .../controller/SingleResourceRetrieved.java | 29 +++ ...ourceRetrievedDiscoverabilityListener.java | 32 +++ .../web/controller/TestController.java | 28 +++ .../main/java/org/baeldung/web/dto/Foo.java | 11 + .../src/main/resources/logback.xml | 20 ++ .../src/main/resources/webSecurityConfig.xml | 25 ++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/homepage.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 52 +++++ .../src/test/resources/.gitignore | 13 ++ 38 files changed, 1076 insertions(+) create mode 100644 spring-security-rest-full/.classpath create mode 100644 spring-security-rest-full/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-rest-full/.gitignore create mode 100644 spring-security-rest-full/.project create mode 100644 spring-security-rest-full/.settings/.jsdtscope create mode 100644 spring-security-rest-full/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-rest-full/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-rest-full/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-rest-full/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-rest-full/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-rest-full/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-rest-full/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-rest-full/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-rest-full/.springBeans create mode 100644 spring-security-rest-full/README.md create mode 100644 spring-security-rest-full/pom.xml create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java create mode 100644 spring-security-rest-full/src/main/resources/logback.xml create mode 100644 spring-security-rest-full/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-rest-full/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-security-rest-full/src/main/webapp/WEB-INF/view/homepage.jsp create mode 100644 spring-security-rest-full/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-rest-full/src/test/resources/.gitignore diff --git a/spring-security-rest-full/.classpath b/spring-security-rest-full/.classpath new file mode 100644 index 000000000000..5dea19367768 --- /dev/null +++ b/spring-security-rest-full/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-rest-full/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-rest-full/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-rest-full/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-rest-full/.gitignore b/spring-security-rest-full/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-rest-full/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-rest-full/.project b/spring-security-rest-full/.project new file mode 100644 index 000000000000..f2aa3ca83eb0 --- /dev/null +++ b/spring-security-rest-full/.project @@ -0,0 +1,59 @@ + + + spring-security-basic-auth + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-security-rest-full/.settings/.jsdtscope b/spring-security-rest-full/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-rest-full/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-rest-full/.settings/org.eclipse.jdt.core.prefs b/spring-security-rest-full/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..df8135651462 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-rest-full/.settings/org.eclipse.jdt.ui.prefs b/spring-security-rest-full/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-rest-full/.settings/org.eclipse.m2e.core.prefs b/spring-security-rest-full/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-rest-full/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-rest-full/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.common.component b/spring-security-rest-full/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..83a7bf94e7a2 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-rest-full/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..b46bc511b943 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.validation.prefs b/spring-security-rest-full/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-rest-full/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-rest-full/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-rest-full/.springBeans b/spring-security-rest-full/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-security-rest-full/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-security-rest-full/README.md b/spring-security-rest-full/README.md new file mode 100644 index 000000000000..61f509f9e5a3 --- /dev/null +++ b/spring-security-rest-full/README.md @@ -0,0 +1,5 @@ +========= + +Relevant Article: +- [Spring Security - security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) +- [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-basic-authentication) diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml new file mode 100644 index 000000000000..e6c8b1706634 --- /dev/null +++ b/spring-security-rest-full/pom.xml @@ -0,0 +1,216 @@ + + 4.0.0 + org.baeldung + spring-security-basic-auth + 0.1-SNAPSHOT + + spring-security-basic-auth + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + 14.0.1 + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-basic-auth + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + 1.4.2 + 2.14.1 + + + \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java new file mode 100644 index 000000000000..02db7a733a6b --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java @@ -0,0 +1,23 @@ +package org.baeldung.persistence.service; + +import org.baeldung.web.dto.Foo; +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + public FooService() { + super(); + } + + // API + + public Foo getById(final Long id) { + return null; + } + + public Long create(final Foo resource) { + return null; + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java new file mode 100644 index 000000000000..968237227f63 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java @@ -0,0 +1,31 @@ +package org.baeldung.security.basic; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +@Component +public class MyBasicAuthenticationEntryPoint extends BasicAuthenticationEntryPoint { + + @Override + public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException, ServletException { + response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\""); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + final PrintWriter writer = response.getWriter(); + writer.println("HTTP Status " + HttpServletResponse.SC_UNAUTHORIZED + " - " + authException.getMessage()); + } + + @Override + public void afterPropertiesSet() throws Exception { + setRealmName("Baeldung"); + super.afterPropertiesSet(); + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java new file mode 100644 index 000000000000..74c11478ee2e --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@Configuration +@EnableWebMvc +public class MvcConfig extends WebMvcConfigurerAdapter { + + public MvcConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/homepage.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java new file mode 100644 index 000000000000..4ea0053f4845 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.persistence") +public class PersistenceConfig { + + public PersistenceConfig() { + super(); + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java new file mode 100644 index 000000000000..4ce80dab9f1c --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +@ComponentScan("org.baeldung.security") +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java new file mode 100644 index 000000000000..fa6f5f6d5626 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ComponentScan("org.baeldung.web") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java new file mode 100644 index 000000000000..daa797ee368e --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -0,0 +1,74 @@ +package org.baeldung.web.controller; + +import java.net.URI; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.baeldung.persistence.service.FooService; +import org.baeldung.web.dto.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.util.UriComponentsBuilder; +import org.springframework.web.util.UriTemplate; + +import com.google.common.base.Preconditions; + +@Controller +@RequestMapping(value = "/foo") +public class FooController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + @Autowired + private FooService service; + + public FooController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { + return new Foo(); + } + + @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { + final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); + + eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); + return resourceById; + } + + @RequestMapping(value = "admin/foo", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { + Preconditions.checkNotNull(resource); + final Long idOfCreatedResource = service.create(resource); + + eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); + } + + @RequestMapping(value = "admin", method = RequestMethod.GET) + @ResponseStatus(value = HttpStatus.NO_CONTENT) + public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { + final String rootUri = request.getRequestURL().toString(); + + final URI fooUri = new UriTemplate("{rootUri}/{resource}").expand(rootUri, "foo"); + final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); + response.addHeader("Link", linkToFoo); + } +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java new file mode 100644 index 000000000000..a41ebb5a5cdd --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java @@ -0,0 +1,30 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletResponse; + +/** + * Provides some constants and utility methods to build a Link Header to be stored in the {@link HttpServletResponse} object + */ +public final class LinkUtil { + + private LinkUtil() { + throw new AssertionError(); + } + + // + + /** + * Creates a Link Header to be stored in the {@link HttpServletResponse} to provide Discoverability features to the user + * + * @param uri + * the base uri + * @param rel + * the relative path + * + * @return the complete url + */ + public static String createLinkHeader(final String uri, final String rel) { + return "<" + uri + ">; rel=\"" + rel + "\""; + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java new file mode 100644 index 000000000000..a67788810161 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java @@ -0,0 +1,35 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationEvent; + +public class ResourceCreated extends ApplicationEvent { + private final HttpServletResponse response; + private final HttpServletRequest request; + private final long idOfNewResource; + + public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { + super(source); + + this.request = request; + this.response = response; + this.idOfNewResource = idOfNewResource; + } + + // API + + public HttpServletResponse getResponse() { + return response; + } + + public HttpServletRequest getRequest() { + return request; + } + + public long getIdOfNewResource() { + return idOfNewResource; + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java new file mode 100644 index 000000000000..8d19ef82fc63 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java @@ -0,0 +1,35 @@ +package org.baeldung.web.controller; + +import java.net.URI; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; +import org.springframework.web.util.UriTemplate; + +import com.google.common.base.Preconditions; +import com.google.common.net.HttpHeaders; + +@Component +class ResourceCreatedDiscoverabilityListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final ResourceCreated resourceCreatedEvent) { + Preconditions.checkNotNull(resourceCreatedEvent); + + final HttpServletRequest request = resourceCreatedEvent.getRequest(); + final HttpServletResponse response = resourceCreatedEvent.getResponse(); + final long idOfNewResource = resourceCreatedEvent.getIdOfNewResource(); + + addLinkHeaderOnResourceCreation(request, response, idOfNewResource); + } + + void addLinkHeaderOnResourceCreation(final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { + final String requestUrl = request.getRequestURL().toString(); + final URI uri = new UriTemplate("{requestUrl}/{idOfNewResource}").expand(requestUrl, idOfNewResource); + response.setHeader(HttpHeaders.LOCATION, uri.toASCIIString()); + } + +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java new file mode 100644 index 000000000000..3de791810549 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java @@ -0,0 +1,29 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationEvent; + +public class SingleResourceRetrieved extends ApplicationEvent { + private final HttpServletResponse response; + private final HttpServletRequest request; + + public SingleResourceRetrieved(final Object source, final HttpServletRequest request, final HttpServletResponse response) { + super(source); + + this.request = request; + this.response = response; + } + + // API + + public HttpServletResponse getResponse() { + return response; + } + + public HttpServletRequest getRequest() { + return request; + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java new file mode 100644 index 000000000000..45cd7c4d131a --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java @@ -0,0 +1,32 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +import com.google.common.base.Preconditions; + +@Component +class SingleResourceRetrievedDiscoverabilityListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final SingleResourceRetrieved resourceRetrievedEvent) { + Preconditions.checkNotNull(resourceRetrievedEvent); + + final HttpServletRequest request = resourceRetrievedEvent.getRequest(); + final HttpServletResponse response = resourceRetrievedEvent.getResponse(); + addLinkHeaderOnSingleResourceRetrieval(request, response); + } + + void addLinkHeaderOnSingleResourceRetrieval(final HttpServletRequest request, final HttpServletResponse response) { + final StringBuffer requestURL = request.getRequestURL(); + final int positionOfLastSlash = requestURL.lastIndexOf("/"); + final String uriForResourceCreation = requestURL.substring(0, positionOfLastSlash); + + final String linkHeaderValue = LinkUtil.createLinkHeader(uriForResourceCreation, "collection"); + response.addHeader("Link", linkHeaderValue); + } + +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java new file mode 100644 index 000000000000..f68cfb2eb7dc --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java @@ -0,0 +1,28 @@ +package org.baeldung.web.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class TestController { + + public TestController() { + super(); + } + + // API + + @RequestMapping("/permitAll") + @ResponseBody + public String permitAll() { + return "Permit All"; + } + + @RequestMapping("/securityNone") + @ResponseBody + public String securityNone() { + return "Security None"; + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java new file mode 100644 index 000000000000..352045989daa --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java @@ -0,0 +1,11 @@ +package org.baeldung.web.dto; + +import java.io.Serializable; + +public class Foo implements Serializable { + + public Foo() { + super(); + } + +} diff --git a/spring-security-rest-full/src/main/resources/logback.xml b/spring-security-rest-full/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-security-rest-full/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..2b55ca1c7366 --- /dev/null +++ b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest-full/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-rest-full/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-rest-full/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-rest-full/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-rest-full/src/main/webapp/WEB-INF/view/homepage.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-security-rest-full/src/main/webapp/WEB-INF/view/homepage.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml b/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..461f32bde524 --- /dev/null +++ b/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + Spring Security Basic Auth Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + index.html + + + \ No newline at end of file diff --git a/spring-security-rest-full/src/test/resources/.gitignore b/spring-security-rest-full/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-rest-full/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From 3201a925ca4dcb2d69664441b8dbd1409a764f3e Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:01:44 +0300 Subject: [PATCH 139/206] cleanup work --- spring-hibernate4/pom.xml | 389 +++++++++--------- .../baeldung/spring/PersistenceConfig.java | 2 +- spring-security-rest-full/.project | 2 +- .../org.eclipse.wst.common.component | 6 +- spring-security-rest-full/README.md | 4 - spring-security-rest-full/pom.xml | 87 ++-- .../MyBasicAuthenticationEntryPoint.java | 31 -- .../baeldung/spring/PersistenceConfig.java | 69 +++- .../src/main/resources/webSecurityConfig.xml | 2 +- 9 files changed, 324 insertions(+), 268 deletions(-) delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index fd0fe6f121de..877388483133 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -1,196 +1,197 @@ - - 4.0.0 - org.baeldung - spring-hibernate4 - 0.1-SNAPSHOT - - spring-hibernate4 - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-orm - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - - - - org.hibernate - hibernate-core - ${hibernate.version} - - - org.javassist - javassist - 3.17.1-GA - - - mysql - mysql-connector-java - ${mysql-connector-java.version} - runtime - - - - - - org.hibernate - hibernate-validator - ${hibernate-validator.version} - - - - - - com.google.guava - guava - ${guava.version} - - - - - - org.apache.commons - commons-lang3 - 3.1 - test - - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-hibernate4 - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 4.2.2.Final - 5.1.25 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.0 - 1.8.9 - - - 1.4.2 - 2.14.1 - + + 4.0.0 + org.baeldung + spring-hibernate4 + 0.1-SNAPSHOT + + spring-hibernate4 + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.hibernate + hibernate-core + ${hibernate.version} + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + ${mysql-connector-java.version} + runtime + + + + + + org.hibernate + hibernate-validator + ${hibernate-validator.version} + + + + + + com.google.guava + guava + ${guava.version} + + + + + + org.apache.commons + commons-lang3 + 3.1 + test + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-hibernate4 + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.0 + 1.8.9 + + + 1.4.2 + 2.14.1 + \ No newline at end of file diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java index 765a37962f62..0c79b1aaa8fa 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -21,7 +21,7 @@ @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) -@ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) +@ComponentScan({ "org.baeldung.persistence" }) public class PersistenceConfig { @Autowired diff --git a/spring-security-rest-full/.project b/spring-security-rest-full/.project index f2aa3ca83eb0..e914491b964d 100644 --- a/spring-security-rest-full/.project +++ b/spring-security-rest-full/.project @@ -1,6 +1,6 @@ - spring-security-basic-auth + spring-security-rest-full diff --git a/spring-security-rest-full/.settings/org.eclipse.wst.common.component b/spring-security-rest-full/.settings/org.eclipse.wst.common.component index 83a7bf94e7a2..174b04e48ddc 100644 --- a/spring-security-rest-full/.settings/org.eclipse.wst.common.component +++ b/spring-security-rest-full/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-rest-full/README.md b/spring-security-rest-full/README.md index 61f509f9e5a3..f39e977cecb9 100644 --- a/spring-security-rest-full/README.md +++ b/spring-security-rest-full/README.md @@ -1,5 +1 @@ ========= - -Relevant Article: -- [Spring Security - security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) -- [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-basic-authentication) diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml index e6c8b1706634..63905110a6db 100644 --- a/spring-security-rest-full/pom.xml +++ b/spring-security-rest-full/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-security-basic-auth + spring-security-rest-full 0.1-SNAPSHOT - spring-security-basic-auth + spring-security-rest-full war @@ -72,6 +72,31 @@ ${org.springframework.version}
+ + + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.hibernate + hibernate-core + ${hibernate.version} + + + org.javassist + javassist + 3.17.1-GA + + + mysql + mysql-connector-java + ${mysql-connector-java.version} + runtime + + @@ -128,7 +153,7 @@ - spring-security-basic-auth + spring-security-rest-full src/main/resources @@ -141,7 +166,7 @@ org.apache.maven.plugins maven-surefire-plugin - ${maven-surefire-plugin.version} + ${maven-surefire-plugin.version} @@ -155,7 +180,7 @@ org.codehaus.cargo cargo-maven2-plugin - ${cargo-maven2-plugin.version} + ${cargo-maven2-plugin.version} true @@ -178,39 +203,39 @@ - - 3.2.3.RELEASE - 3.1.4.RELEASE + + 3.2.3.RELEASE + 3.1.4.RELEASE - - 4.2.2.Final - 5.1.25 + + 4.2.2.Final + 5.1.25 - - 1.7.5 - 1.0.11 + + 1.7.5 + 1.0.11 - - 5.0.1.Final + + 5.0.1.Final - - 14.0.1 - 3.1 + + 14.0.1 + 3.1 - - 1.3 - 4.11 - 1.9.5 + + 1.3 + 4.11 + 1.9.5 - 4.2.4 - 4.2.5 + 4.2.4 + 4.2.5 - 1.8.0 - 1.8.9 + 1.8.0 + 1.8.9 - - 1.4.2 - 2.14.1 - + + 1.4.2 + 2.14.1 +
\ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java deleted file mode 100644 index 968237227f63..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.baeldung.security.basic; - -import java.io.IOException; -import java.io.PrintWriter; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -@Component -public class MyBasicAuthenticationEntryPoint extends BasicAuthenticationEntryPoint { - - @Override - public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException, ServletException { - response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\""); - response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); - final PrintWriter writer = response.getWriter(); - writer.println("HTTP Status " + HttpServletResponse.SC_UNAUTHORIZED + " - " + authException.getMessage()); - } - - @Override - public void afterPropertiesSet() throws Exception { - setRealmName("Baeldung"); - super.afterPropertiesSet(); - } - -} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java index 4ea0053f4845..0c79b1aaa8fa 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -1,14 +1,79 @@ package org.baeldung.spring; +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.google.common.base.Preconditions; @Configuration -@ComponentScan("org.baeldung.persistence") +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) +@ComponentScan({ "org.baeldung.persistence" }) public class PersistenceConfig { + @Autowired + private Environment env; + public PersistenceConfig() { super(); } -} + @Bean + public LocalSessionFactoryBean sessionFactory() { + final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(sessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml index 2b55ca1c7366..b43c76e1c83b 100644 --- a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml @@ -10,7 +10,7 @@ - + From 6f8e29db09a47b25c6015295066b0b5d7494250f Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:22:54 +0300 Subject: [PATCH 140/206] rest work --- .../org/baeldung/persistence/dao/IFooDao.java | 8 ++ .../dao/common/AbstractHibernateDao.java | 65 +++++++++++++++ .../dao/common/GenericHibernateDao.java | 13 +++ .../persistence/dao/common/IGenericDao.java | 7 ++ .../persistence/dao/common/IOperations.java | 20 +++++ .../org/baeldung/persistence/model/Foo.java | 83 +++++++++++++++++++ .../persistence/service/FooService.java | 23 ----- .../persistence/service/IFooService.java | 8 ++ .../service/common/AbstractService.java | 44 ++++++++++ .../persistence/service/impl/FooService.java | 30 +++++++ .../web/controller/FooController.java | 4 +- .../main/java/org/baeldung/web/dto/Foo.java | 11 --- 12 files changed, 280 insertions(+), 36 deletions(-) create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/model/Foo.java delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java new file mode 100644 index 000000000000..fc3928d8a648 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.dao; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Foo; + +public interface IFooDao extends IOperations { + // +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java new file mode 100644 index 000000000000..65e57afcb3e5 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java @@ -0,0 +1,65 @@ +package org.baeldung.persistence.dao.common; + +import java.io.Serializable; +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import com.google.common.base.Preconditions; + +@SuppressWarnings("unchecked") +public abstract class AbstractHibernateDao implements IOperations { + private Class clazz; + + @Autowired + private SessionFactory sessionFactory; + + // API + + protected final void setClazz(final Class clazzToSet) { + clazz = Preconditions.checkNotNull(clazzToSet); + } + + @Override + public final T findOne(final long id) { + return (T) getCurrentSession().get(clazz, id); + } + + @Override + public final List findAll() { + return getCurrentSession().createQuery("from " + clazz.getName()).list(); + } + + @Override + public final void create(final T entity) { + Preconditions.checkNotNull(entity); + // getCurrentSession().persist(entity); + getCurrentSession().saveOrUpdate(entity); + } + + @Override + public final T update(final T entity) { + Preconditions.checkNotNull(entity); + return (T) getCurrentSession().merge(entity); + } + + @Override + public final void delete(final T entity) { + Preconditions.checkNotNull(entity); + getCurrentSession().delete(entity); + } + + @Override + public final void deleteById(final long entityId) { + final T entity = findOne(entityId); + Preconditions.checkState(entity != null); + delete(entity); + } + + protected final Session getCurrentSession() { + return sessionFactory.getCurrentSession(); + } + +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java new file mode 100644 index 000000000000..47ed13087808 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java @@ -0,0 +1,13 @@ +package org.baeldung.persistence.dao.common; + +import java.io.Serializable; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Repository; + +@Repository +@Scope(BeanDefinition.SCOPE_PROTOTYPE) +public class GenericHibernateDao extends AbstractHibernateDao implements IGenericDao { + // +} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java new file mode 100644 index 000000000000..b7876deea491 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java @@ -0,0 +1,7 @@ +package org.baeldung.persistence.dao.common; + +import java.io.Serializable; + +public interface IGenericDao extends IOperations { + // +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java new file mode 100644 index 000000000000..1c84b06c8569 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java @@ -0,0 +1,20 @@ +package org.baeldung.persistence.dao.common; + +import java.io.Serializable; +import java.util.List; + +public interface IOperations { + + T findOne(final long id); + + List findAll(); + + void create(final T entity); + + T update(final T entity); + + void delete(final T entity); + + void deleteById(final long entityId); + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/model/Foo.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/model/Foo.java new file mode 100644 index 000000000000..8e1dee33e845 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/model/Foo.java @@ -0,0 +1,83 @@ +package org.baeldung.persistence.model; + +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +public class Foo implements Serializable { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(nullable = false) + private String name; + + public Foo() { + super(); + } + + public Foo(final String name) { + super(); + + this.name = name; + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + // + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java deleted file mode 100644 index 02db7a733a6b..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/FooService.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.baeldung.persistence.service; - -import org.baeldung.web.dto.Foo; -import org.springframework.stereotype.Service; - -@Service -public class FooService { - - public FooService() { - super(); - } - - // API - - public Foo getById(final Long id) { - return null; - } - - public Long create(final Foo resource) { - return null; - } - -} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java new file mode 100644 index 000000000000..877432045056 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java @@ -0,0 +1,8 @@ +package org.baeldung.persistence.service; + +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Foo; + +public interface IFooService extends IOperations { + // +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java new file mode 100644 index 000000000000..3b32bc3ebb59 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java @@ -0,0 +1,44 @@ +package org.baeldung.persistence.service.common; + +import java.io.Serializable; +import java.util.List; + +import org.baeldung.persistence.dao.common.IOperations; +import org.springframework.transaction.annotation.Transactional; + +@Transactional +public abstract class AbstractService implements IOperations { + + @Override + public T findOne(final long id) { + return getDao().findOne(id); + } + + @Override + public List findAll() { + return getDao().findAll(); + } + + @Override + public void create(final T entity) { + getDao().create(entity); + } + + @Override + public T update(final T entity) { + return getDao().update(entity); + } + + @Override + public void delete(final T entity) { + getDao().delete(entity); + } + + @Override + public void deleteById(final long entityId) { + getDao().deleteById(entityId); + } + + protected abstract IOperations getDao(); + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java new file mode 100644 index 000000000000..af77bef98192 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java @@ -0,0 +1,30 @@ +package org.baeldung.persistence.service.impl; + +import org.baeldung.persistence.dao.IFooDao; +import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.model.Foo; +import org.baeldung.persistence.service.IFooService; +import org.baeldung.persistence.service.common.AbstractService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Transactional +public class FooService extends AbstractService implements IFooService { + + @Autowired + private IFooDao dao; + + public FooService() { + super(); + } + + // API + + @Override + protected IOperations getDao() { + return dao; + } + +} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java index daa797ee368e..b20eb3005ec8 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -5,8 +5,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.baeldung.persistence.service.FooService; -import org.baeldung.web.dto.Foo; +import org.baeldung.persistence.model.Foo; +import org.baeldung.persistence.service.impl.FooService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.HttpStatus; diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java deleted file mode 100644 index 352045989daa..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/dto/Foo.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.baeldung.web.dto; - -import java.io.Serializable; - -public class Foo implements Serializable { - - public Foo() { - super(); - } - -} From 0fd0f229701e88254f36be3ed2b1f61dc508ba47 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:35:13 +0300 Subject: [PATCH 141/206] persistence work --- spring-security-rest-full/pom.xml | 6 ++ .../{dao/common => }/IOperations.java | 4 +- .../org/baeldung/persistence/dao/IFooDao.java | 5 +- .../dao/common/AbstractHibernateDao.java | 65 ------------------- .../dao/common/GenericHibernateDao.java | 13 ---- .../persistence/dao/common/IGenericDao.java | 7 -- .../persistence/service/IFooService.java | 2 +- .../service/common/AbstractService.java | 19 ++++-- .../persistence/service/impl/FooService.java | 4 +- .../baeldung/spring/PersistenceConfig.java | 2 + .../web/controller/FooController.java | 4 +- .../resources/springDataPersistenceConfig.xml | 9 +++ 12 files changed, 39 insertions(+), 101 deletions(-) rename spring-security-rest-full/src/main/java/org/baeldung/persistence/{dao/common => }/IOperations.java (77%) delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java create mode 100644 spring-security-rest-full/src/main/resources/springDataPersistenceConfig.xml diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml index 63905110a6db..57530026915f 100644 --- a/spring-security-rest-full/pom.xml +++ b/spring-security-rest-full/pom.xml @@ -80,6 +80,11 @@ spring-orm ${org.springframework.version} + + org.springframework.data + spring-data-jpa + ${spring-data-jpa.version} + org.hibernate hibernate-core @@ -210,6 +215,7 @@ 4.2.2.Final 5.1.25 + 1.3.2.RELEASE 1.7.5 diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/IOperations.java similarity index 77% rename from spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java rename to spring-security-rest-full/src/main/java/org/baeldung/persistence/IOperations.java index 1c84b06c8569..3c6f86a78bd7 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/IOperations.java @@ -1,4 +1,4 @@ -package org.baeldung.persistence.dao.common; +package org.baeldung.persistence; import java.io.Serializable; import java.util.List; @@ -9,7 +9,7 @@ public interface IOperations { List findAll(); - void create(final T entity); + T create(final T entity); T update(final T entity); diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java index fc3928d8a648..b643516d06d9 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java @@ -1,8 +1,9 @@ package org.baeldung.persistence.dao; -import org.baeldung.persistence.dao.common.IOperations; import org.baeldung.persistence.model.Foo; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -public interface IFooDao extends IOperations { +public interface IFooDao extends JpaRepository, JpaSpecificationExecutor { // } diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java deleted file mode 100644 index 65e57afcb3e5..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.baeldung.persistence.dao.common; - -import java.io.Serializable; -import java.util.List; - -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.springframework.beans.factory.annotation.Autowired; - -import com.google.common.base.Preconditions; - -@SuppressWarnings("unchecked") -public abstract class AbstractHibernateDao implements IOperations { - private Class clazz; - - @Autowired - private SessionFactory sessionFactory; - - // API - - protected final void setClazz(final Class clazzToSet) { - clazz = Preconditions.checkNotNull(clazzToSet); - } - - @Override - public final T findOne(final long id) { - return (T) getCurrentSession().get(clazz, id); - } - - @Override - public final List findAll() { - return getCurrentSession().createQuery("from " + clazz.getName()).list(); - } - - @Override - public final void create(final T entity) { - Preconditions.checkNotNull(entity); - // getCurrentSession().persist(entity); - getCurrentSession().saveOrUpdate(entity); - } - - @Override - public final T update(final T entity) { - Preconditions.checkNotNull(entity); - return (T) getCurrentSession().merge(entity); - } - - @Override - public final void delete(final T entity) { - Preconditions.checkNotNull(entity); - getCurrentSession().delete(entity); - } - - @Override - public final void deleteById(final long entityId) { - final T entity = findOne(entityId); - Preconditions.checkState(entity != null); - delete(entity); - } - - protected final Session getCurrentSession() { - return sessionFactory.getCurrentSession(); - } - -} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java deleted file mode 100644 index 47ed13087808..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.baeldung.persistence.dao.common; - -import java.io.Serializable; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Repository; - -@Repository -@Scope(BeanDefinition.SCOPE_PROTOTYPE) -public class GenericHibernateDao extends AbstractHibernateDao implements IGenericDao { - // -} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java deleted file mode 100644 index b7876deea491..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.baeldung.persistence.dao.common; - -import java.io.Serializable; - -public interface IGenericDao extends IOperations { - // -} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java index 877432045056..2bfe395df0b5 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java @@ -1,6 +1,6 @@ package org.baeldung.persistence.service; -import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.IOperations; import org.baeldung.persistence.model.Foo; public interface IFooService extends IOperations { diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java index 3b32bc3ebb59..406a958eec24 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java @@ -3,30 +3,35 @@ import java.io.Serializable; import java.util.List; -import org.baeldung.persistence.dao.common.IOperations; +import org.baeldung.persistence.IOperations; +import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.transaction.annotation.Transactional; +import com.google.common.collect.Lists; + @Transactional public abstract class AbstractService implements IOperations { @Override + @Transactional(readOnly = true) public T findOne(final long id) { return getDao().findOne(id); } @Override + @Transactional(readOnly = true) public List findAll() { - return getDao().findAll(); + return Lists.newArrayList(getDao().findAll()); } @Override - public void create(final T entity) { - getDao().create(entity); + public T create(final T entity) { + return getDao().save(entity); } @Override public T update(final T entity) { - return getDao().update(entity); + return getDao().save(entity); } @Override @@ -36,9 +41,9 @@ public void delete(final T entity) { @Override public void deleteById(final long entityId) { - getDao().deleteById(entityId); + getDao().delete(entityId); } - protected abstract IOperations getDao(); + protected abstract PagingAndSortingRepository getDao(); } diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java index af77bef98192..81bd37e3df6b 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java @@ -1,11 +1,11 @@ package org.baeldung.persistence.service.impl; import org.baeldung.persistence.dao.IFooDao; -import org.baeldung.persistence.dao.common.IOperations; import org.baeldung.persistence.model.Foo; import org.baeldung.persistence.service.IFooService; import org.baeldung.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,7 +23,7 @@ public FooService() { // API @Override - protected IOperations getDao() { + protected PagingAndSortingRepository getDao() { return dao; } diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java index 0c79b1aaa8fa..93f7f3622fb8 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -8,6 +8,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; @@ -22,6 +23,7 @@ @EnableTransactionManagement @PropertySource({ "classpath:persistence-mysql.properties" }) @ComponentScan({ "org.baeldung.persistence" }) +@ImportResource("classpath*:springDataPersistenceConfig.xml") public class PersistenceConfig { @Autowired diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java index b20eb3005ec8..cf4b976b907c 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -47,7 +47,7 @@ public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) @ResponseBody public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { - final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); + final Foo resourceById = Preconditions.checkNotNull(service.findOne(id)); eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); return resourceById; @@ -57,7 +57,7 @@ public Foo get(@PathVariable("id") final Long id, final HttpServletRequest reque @ResponseStatus(HttpStatus.CREATED) public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { Preconditions.checkNotNull(resource); - final Long idOfCreatedResource = service.create(resource); + final Long idOfCreatedResource = service.create(resource).getId(); eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); } diff --git a/spring-security-rest-full/src/main/resources/springDataPersistenceConfig.xml b/spring-security-rest-full/src/main/resources/springDataPersistenceConfig.xml new file mode 100644 index 000000000000..a42410a49ef0 --- /dev/null +++ b/spring-security-rest-full/src/main/resources/springDataPersistenceConfig.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file From b51efabeb5f3bccdc2ced589d37d215c3b1819cd Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:39:05 +0300 Subject: [PATCH 142/206] persistence work --- spring-security-rest-full/pom.xml | 2 +- .../baeldung/spring/PersistenceConfig.java | 35 +++++++++++-------- .../resources/persistence-mysql.properties | 10 ++++++ .../src/main/webapp/WEB-INF/web.xml | 2 +- 4 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 spring-security-rest-full/src/main/resources/persistence-mysql.properties diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml index 57530026915f..00a2194f9105 100644 --- a/spring-security-rest-full/pom.xml +++ b/spring-security-rest-full/pom.xml @@ -87,7 +87,7 @@ org.hibernate - hibernate-core + hibernate-entitymanager ${hibernate.version} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java index 93f7f3622fb8..91e501b39089 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -13,8 +13,10 @@ import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.orm.hibernate4.HibernateTransactionManager; -import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; +import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.google.common.base.Preconditions; @@ -34,17 +36,21 @@ public PersistenceConfig() { } @Bean - public LocalSessionFactoryBean sessionFactory() { - final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); - sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); - sessionFactory.setHibernateProperties(hibernateProperties()); + public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { + final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); + em.setDataSource(dataSource()); + em.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); - return sessionFactory; + final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); + // vendorAdapter.set + em.setJpaVendorAdapter(vendorAdapter); + em.setJpaProperties(additionalProperties()); + + return em; } @Bean - public DataSource restDataSource() { + public DataSource dataSource() { final DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); @@ -55,11 +61,11 @@ public DataSource restDataSource() { } @Bean - public HibernateTransactionManager transactionManager() { - final HibernateTransactionManager txManager = new HibernateTransactionManager(); - txManager.setSessionFactory(sessionFactory().getObject()); + public PlatformTransactionManager transactionManager() { + final JpaTransactionManager transactionManager = new JpaTransactionManager(); + transactionManager.setEntityManagerFactory(entityManagerFactoryBean().getObject()); - return txManager; + return transactionManager; } @Bean @@ -67,7 +73,7 @@ public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { return new PersistenceExceptionTranslationPostProcessor(); } - final Properties hibernateProperties() { + final Properties additionalProperties() { return new Properties() { { setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); @@ -78,4 +84,5 @@ final Properties hibernateProperties() { } }; } + } \ No newline at end of file diff --git a/spring-security-rest-full/src/main/resources/persistence-mysql.properties b/spring-security-rest-full/src/main/resources/persistence-mysql.properties new file mode 100644 index 000000000000..8263b0d9accd --- /dev/null +++ b/spring-security-rest-full/src/main/resources/persistence-mysql.properties @@ -0,0 +1,10 @@ +# jdbc.X +jdbc.driverClassName=com.mysql.jdbc.Driver +jdbc.url=jdbc:mysql://localhost:3306/spring_hibernate4_01?createDatabaseIfNotExist=true +jdbc.user=tutorialuser +jdbc.pass=tutorialmy5ql + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.MySQL5Dialect +hibernate.show_sql=false +hibernate.hbm2ddl.auto=create-drop diff --git a/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml b/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml index 461f32bde524..b02f62911e76 100644 --- a/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml @@ -6,7 +6,7 @@ http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> - Spring Security Basic Auth Application + Spring Security REST Application From 4610d3e1ba91962785ddfa99baf5ce90a0c7a83b Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:42:57 +0300 Subject: [PATCH 143/206] service work --- .../java/org/baeldung/spring/MvcConfig.java | 39 ------------------- .../baeldung/spring/SecSecurityConfig.java | 2 - .../java/org/baeldung/spring/WebConfig.java | 2 + 3 files changed, 2 insertions(+), 41 deletions(-) delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java deleted file mode 100644 index 74c11478ee2e..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/spring/MvcConfig.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.baeldung.spring; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.ViewResolver; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.servlet.view.JstlView; - -@Configuration -@EnableWebMvc -public class MvcConfig extends WebMvcConfigurerAdapter { - - public MvcConfig() { - super(); - } - - // API - - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); - - registry.addViewController("/homepage.html"); - } - - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); - - return bean; - } -} \ No newline at end of file diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java index 4ce80dab9f1c..4da114c78b62 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -1,12 +1,10 @@ package org.baeldung.spring; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource({ "classpath:webSecurityConfig.xml" }) -@ComponentScan("org.baeldung.security") public class SecSecurityConfig { public SecSecurityConfig() { diff --git a/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java index fa6f5f6d5626..19fcde5fab6f 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/spring/WebConfig.java @@ -2,10 +2,12 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @ComponentScan("org.baeldung.web") +@EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { public WebConfig() { From e68379871e02004c35ff242923889686c4892243 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:46:10 +0300 Subject: [PATCH 144/206] injection work --- spring-security-rest-full/.springBeans | 2 +- .../web/controller/FooController.java | 3 ++ .../web/controller/TestController.java | 28 ------------------- .../web/{controller => util}/LinkUtil.java | 2 +- .../{controller => util}/ResourceCreated.java | 2 +- ...esourceCreatedDiscoverabilityListener.java | 2 +- .../SingleResourceRetrieved.java | 2 +- ...ourceRetrievedDiscoverabilityListener.java | 2 +- .../{mvc-servlet.xml => api-servlet.xml} | 0 .../src/main/webapp/WEB-INF/web.xml | 4 +-- 10 files changed, 11 insertions(+), 36 deletions(-) delete mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java rename spring-security-rest-full/src/main/java/org/baeldung/web/{controller => util}/LinkUtil.java (95%) rename spring-security-rest-full/src/main/java/org/baeldung/web/{controller => util}/ResourceCreated.java (95%) rename spring-security-rest-full/src/main/java/org/baeldung/web/{controller => util}/ResourceCreatedDiscoverabilityListener.java (97%) rename spring-security-rest-full/src/main/java/org/baeldung/web/{controller => util}/SingleResourceRetrieved.java (94%) rename spring-security-rest-full/src/main/java/org/baeldung/web/{controller => util}/SingleResourceRetrievedDiscoverabilityListener.java (97%) rename spring-security-rest-full/src/main/webapp/WEB-INF/{mvc-servlet.xml => api-servlet.xml} (100%) diff --git a/spring-security-rest-full/.springBeans b/spring-security-rest-full/.springBeans index 7623a7e88836..d11fb034bdc0 100644 --- a/spring-security-rest-full/.springBeans +++ b/spring-security-rest-full/.springBeans @@ -7,7 +7,7 @@ - src/main/webapp/WEB-INF/mvc-servlet.xml + src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java index cf4b976b907c..7452cc7c24a4 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -7,6 +7,9 @@ import org.baeldung.persistence.model.Foo; import org.baeldung.persistence.service.impl.FooService; +import org.baeldung.web.util.LinkUtil; +import org.baeldung.web.util.ResourceCreated; +import org.baeldung.web.util.SingleResourceRetrieved; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.HttpStatus; diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java deleted file mode 100644 index f68cfb2eb7dc..000000000000 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/TestController.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.baeldung.web.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class TestController { - - public TestController() { - super(); - } - - // API - - @RequestMapping("/permitAll") - @ResponseBody - public String permitAll() { - return "Permit All"; - } - - @RequestMapping("/securityNone") - @ResponseBody - public String securityNone() { - return "Security None"; - } - -} diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java b/spring-security-rest-full/src/main/java/org/baeldung/web/util/LinkUtil.java similarity index 95% rename from spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java rename to spring-security-rest-full/src/main/java/org/baeldung/web/util/LinkUtil.java index a41ebb5a5cdd..9e8979e4bded 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/LinkUtil.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/util/LinkUtil.java @@ -1,4 +1,4 @@ -package org.baeldung.web.controller; +package org.baeldung.web.util; import javax.servlet.http.HttpServletResponse; diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-rest-full/src/main/java/org/baeldung/web/util/ResourceCreated.java similarity index 95% rename from spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java rename to spring-security-rest-full/src/main/java/org/baeldung/web/util/ResourceCreated.java index a67788810161..c471cc08180b 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreated.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/util/ResourceCreated.java @@ -1,4 +1,4 @@ -package org.baeldung.web.controller; +package org.baeldung.web.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java b/spring-security-rest-full/src/main/java/org/baeldung/web/util/ResourceCreatedDiscoverabilityListener.java similarity index 97% rename from spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java rename to spring-security-rest-full/src/main/java/org/baeldung/web/util/ResourceCreatedDiscoverabilityListener.java index 8d19ef82fc63..fbfd2fd085c5 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/util/ResourceCreatedDiscoverabilityListener.java @@ -1,4 +1,4 @@ -package org.baeldung.web.controller; +package org.baeldung.web.util; import java.net.URI; diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java b/spring-security-rest-full/src/main/java/org/baeldung/web/util/SingleResourceRetrieved.java similarity index 94% rename from spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java rename to spring-security-rest-full/src/main/java/org/baeldung/web/util/SingleResourceRetrieved.java index 3de791810549..143a73da652d 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/util/SingleResourceRetrieved.java @@ -1,4 +1,4 @@ -package org.baeldung.web.controller; +package org.baeldung.web.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-rest-full/src/main/java/org/baeldung/web/util/SingleResourceRetrievedDiscoverabilityListener.java similarity index 97% rename from spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java rename to spring-security-rest-full/src/main/java/org/baeldung/web/util/SingleResourceRetrievedDiscoverabilityListener.java index 45cd7c4d131a..61fb601ac903 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/util/SingleResourceRetrievedDiscoverabilityListener.java @@ -1,4 +1,4 @@ -package org.baeldung.web.controller; +package org.baeldung.web.util; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/spring-security-rest-full/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-rest-full/src/main/webapp/WEB-INF/api-servlet.xml similarity index 100% rename from spring-security-rest-full/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-rest-full/src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml b/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml index b02f62911e76..d88703596fa6 100644 --- a/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-rest-full/src/main/webapp/WEB-INF/web.xml @@ -26,12 +26,12 @@ - mvc + api org.springframework.web.servlet.DispatcherServlet 1 - mvc + api / From 0b4957e84e3bbca619e1dd5c3e7e456aa3a7728b Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:47:26 +0300 Subject: [PATCH 145/206] working rest service --- .../main/java/org/baeldung/web/controller/FooController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java index 7452cc7c24a4..cc69d42fcbc4 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -6,7 +6,7 @@ import javax.servlet.http.HttpServletResponse; import org.baeldung.persistence.model.Foo; -import org.baeldung.persistence.service.impl.FooService; +import org.baeldung.persistence.service.IFooService; import org.baeldung.web.util.LinkUtil; import org.baeldung.web.util.ResourceCreated; import org.baeldung.web.util.SingleResourceRetrieved; @@ -33,7 +33,7 @@ public class FooController { private ApplicationEventPublisher eventPublisher; @Autowired - private FooService service; + private IFooService service; public FooController() { super(); From 09ad6e1402f5c1413f6d5f8d0d826df4a6a527c0 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:50:11 +0300 Subject: [PATCH 146/206] jackson added --- spring-security-rest-full/pom.xml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml index 00a2194f9105..a8fd265c62a2 100644 --- a/spring-security-rest-full/pom.xml +++ b/spring-security-rest-full/pom.xml @@ -72,7 +72,6 @@ ${org.springframework.version} - @@ -118,6 +117,14 @@ runtime + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + @@ -215,7 +222,11 @@ 4.2.2.Final 5.1.25 - 1.3.2.RELEASE + 1.3.2.RELEASE + + + + 2.2.2 1.7.5 From 8c532286a524c39c48b7364da65a3106aede10f1 Mon Sep 17 00:00:00 2001 From: Eugen Date: Mon, 3 Jun 2013 18:53:51 +0300 Subject: [PATCH 147/206] find one op --- .../main/java/org/baeldung/web/controller/FooController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java index cc69d42fcbc4..bd69ecb36a52 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -26,7 +26,7 @@ import com.google.common.base.Preconditions; @Controller -@RequestMapping(value = "/foo") +@RequestMapping(value = "/foos") public class FooController { @Autowired @@ -44,7 +44,7 @@ public FooController() { @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { - return new Foo(); + return service.findOne(id); } @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) From 0a2381468c9cd24573907c920472a2bb90fdb44b Mon Sep 17 00:00:00 2001 From: eugenp Date: Tue, 2 Jul 2013 11:04:53 +0300 Subject: [PATCH 148/206] minor maven upgrade --- spring-security-basic-auth/pom.xml | 2 +- spring-security-custom/pom.xml | 2 +- spring-security-login/pom.xml | 2 +- spring-security-rest-full/pom.xml | 2 +- spring-security-rest/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index e6c8b1706634..404a21d6e794 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -210,7 +210,7 @@ 1.4.2 - 2.14.1 + 2.15
\ No newline at end of file diff --git a/spring-security-custom/pom.xml b/spring-security-custom/pom.xml index dba76c6a143a..7e19df91ed4a 100644 --- a/spring-security-custom/pom.xml +++ b/spring-security-custom/pom.xml @@ -236,7 +236,7 @@ 1.4.2 - 2.14.1 + 2.15
\ No newline at end of file diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index c797ae3bcbe3..5f11ca98215f 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -202,7 +202,7 @@ 1.4.2 - 2.14.1 + 2.15
\ No newline at end of file diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml index a8fd265c62a2..a0d81a323bb0 100644 --- a/spring-security-rest-full/pom.xml +++ b/spring-security-rest-full/pom.xml @@ -252,7 +252,7 @@ 1.4.2 - 2.14.1 + 2.15
\ No newline at end of file diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml index 909d32af74a7..0e206379d7d8 100644 --- a/spring-security-rest/pom.xml +++ b/spring-security-rest/pom.xml @@ -209,7 +209,7 @@ 1.4.2 - 2.14.1 + 2.15
\ No newline at end of file From 29608c0b363d2b7d4de147f31bf3d38b670c6c27 Mon Sep 17 00:00:00 2001 From: eugenp Date: Tue, 2 Jul 2013 13:14:39 +0300 Subject: [PATCH 149/206] security work - expressions --- spring-security-login/pom.xml | 344 +++++++++--------- .../src/main/webapp/WEB-INF/view/homepage.jsp | 13 + 2 files changed, 187 insertions(+), 170 deletions(-) diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index 5f11ca98215f..48ad53880793 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -1,175 +1,179 @@ - - 4.0.0 - org.baeldung - spring-security-login - 0.1-SNAPSHOT - - spring-security-login - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-login - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin + + 4.0.0 + org.baeldung + spring-security-login + 0.1-SNAPSHOT + + spring-security-login + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + org.springframework.security + spring-security-taglibs + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-login + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin ${maven-surefire-plugin.version} - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + 3.2.3.RELEASE 3.1.4.RELEASE diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp index 5504d2f134ee..93f9dc2fbdf8 100644 --- a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp +++ b/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp @@ -1,9 +1,22 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>

This is the body of the sample view

+ + + This text is only visible to a user +
+
+ + + This text is only visible to an admin +
+
+ ">Logout + \ No newline at end of file From 125073a9d9b9afbacfc4f41f04270f6a307ad551 Mon Sep 17 00:00:00 2001 From: eugenp Date: Tue, 2 Jul 2013 13:54:41 +0300 Subject: [PATCH 150/206] some security work and doc cleanup --- spring-security-login/README.md | 13 ++++++-- spring-security-rest-full/README.md | 15 +++++++++ .../persistence/service/impl/FooService.java | 14 +++++++++ .../web/controller/FooController.java | 30 ++++++++++++------ .../src/main/resources/webSecurityConfig.xml | 31 ++++++++++--------- 5 files changed, 76 insertions(+), 27 deletions(-) diff --git a/spring-security-login/README.md b/spring-security-login/README.md index 3fc9941d1edf..e1efae813e57 100644 --- a/spring-security-login/README.md +++ b/spring-security-login/README.md @@ -1,7 +1,14 @@ ========= -Relevant Articles: -- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) -- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) +## Spring Security Login Tutorial + +### Build the Project +``` +mvn clean install +``` + +### Relevant Articles: +- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) +- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) diff --git a/spring-security-rest-full/README.md b/spring-security-rest-full/README.md index f39e977cecb9..c30bd3421672 100644 --- a/spring-security-rest-full/README.md +++ b/spring-security-rest-full/README.md @@ -1 +1,16 @@ ========= + +## Spring Security REST Tutorial + + +### Build the Project +``` +mvn clean install +``` + + +### Use the REST Service + +``` +curl http://localhost:8080/spring-security-rest-full/foos +``` diff --git a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java index 81bd37e3df6b..f509068d42ff 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java @@ -1,14 +1,19 @@ package org.baeldung.persistence.service.impl; +import java.util.List; + import org.baeldung.persistence.dao.IFooDao; import org.baeldung.persistence.model.Foo; import org.baeldung.persistence.service.IFooService; import org.baeldung.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.google.common.collect.Lists; + @Service @Transactional public class FooService extends AbstractService implements IFooService { @@ -27,4 +32,13 @@ protected PagingAndSortingRepository getDao() { return dao; } + // overridden to be secured + + @Override + @Transactional(readOnly = true) + @PreAuthorize("hasRole('ROLE_ADMIN')") + public List findAll() { + return Lists.newArrayList(getDao().findAll()); + } + } diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java index bd69ecb36a52..dd87dffc4c2e 100644 --- a/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/controller/FooController.java @@ -1,6 +1,7 @@ package org.baeldung.web.controller; import java.net.URI; +import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -41,12 +42,20 @@ public FooController() { // API + // read + @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { return service.findOne(id); } + @RequestMapping(method = RequestMethod.GET) + @ResponseBody + public List findAll() { + return service.findAll(); + } + @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) @ResponseBody public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { @@ -56,15 +65,6 @@ public Foo get(@PathVariable("id") final Long id, final HttpServletRequest reque return resourceById; } - @RequestMapping(value = "admin/foo", method = RequestMethod.POST) - @ResponseStatus(HttpStatus.CREATED) - public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { - Preconditions.checkNotNull(resource); - final Long idOfCreatedResource = service.create(resource).getId(); - - eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); - } - @RequestMapping(value = "admin", method = RequestMethod.GET) @ResponseStatus(value = HttpStatus.NO_CONTENT) public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { @@ -74,4 +74,16 @@ public void adminRoot(final HttpServletRequest request, final HttpServletRespons final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); response.addHeader("Link", linkToFoo); } + + // write + + @RequestMapping(value = "admin/foo", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { + Preconditions.checkNotNull(resource); + final Long idOfCreatedResource = service.create(resource).getId(); + + eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); + } + } diff --git a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml index b43c76e1c83b..08e84b96ec6f 100644 --- a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml @@ -1,25 +1,26 @@ - - + - - + + - + - + - - - - - - - + + + + + + + + + \ No newline at end of file From 5acb28dec1fae48e379cceba454cc7f6bf3f5ed3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 10:59:37 +0300 Subject: [PATCH 151/206] minor sec work --- spring-security-login/src/main/resources/webSecurityConfig.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-login/src/main/resources/webSecurityConfig.xml index 6051a8505bba..742d9fdf03c3 100644 --- a/spring-security-login/src/main/resources/webSecurityConfig.xml +++ b/spring-security-login/src/main/resources/webSecurityConfig.xml @@ -32,6 +32,7 @@ + From 0b375c6d555e6f85798d6373a72f73d6b80999ec Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 11:34:55 +0300 Subject: [PATCH 152/206] minor fixes and maven upgrades --- spring-hibernate4/pom.xml | 4 ++-- .../src/main/java/org/baeldung/spring/PersistenceConfig.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index 877388483133..77efc53d64b1 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -186,12 +186,12 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 1.4.2 - 2.14.1 + 2.15
\ No newline at end of file diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java index 0c79b1aaa8fa..ac148859ccf9 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -35,7 +35,7 @@ public PersistenceConfig() { public LocalSessionFactoryBean sessionFactory() { final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); sessionFactory.setDataSource(restDataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; From 812ea5881eb8100ce097db1e42a7bf2b4bdbb4c2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 11:40:51 +0300 Subject: [PATCH 153/206] minor maven upgrade --- spring-hibernate4/pom.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index 77efc53d64b1..be921ecef920 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -38,7 +38,7 @@ org.javassist javassist - 3.17.1-GA + ${javassist.version} mysql @@ -68,7 +68,7 @@ org.apache.commons commons-lang3 - 3.1 + ${commons-lang3.version} test @@ -162,6 +162,7 @@ 3.2.3.RELEASE 3.1.4.RELEASE + 3.18.0-GA 4.2.2.Final From 270bd5b7076b0c470d7f5de20acc474869d8e739 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 12:15:44 +0300 Subject: [PATCH 154/206] introducing a real connection pool --- spring-hibernate4/pom.xml | 8 +++++++- .../main/java/org/baeldung/spring/PersistenceConfig.java | 4 ++-- spring-hibernate4/src/main/resources/hibernate4Config.xml | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index be921ecef920..ad9bd7f4bb86 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -24,7 +24,7 @@ - + org.springframework spring-orm @@ -47,6 +47,12 @@ runtime + + org.apache.tomcat + tomcat-dbcp + 7.0.41 + + diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java index ac148859ccf9..f66e5543169f 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -4,6 +4,7 @@ import javax.sql.DataSource; +import org.apache.tomcat.dbcp.dbcp.BasicDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -11,7 +12,6 @@ import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.hibernate4.HibernateTransactionManager; import org.springframework.orm.hibernate4.LocalSessionFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -43,7 +43,7 @@ public LocalSessionFactoryBean sessionFactory() { @Bean public DataSource restDataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + final BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); diff --git a/spring-hibernate4/src/main/resources/hibernate4Config.xml b/spring-hibernate4/src/main/resources/hibernate4Config.xml index f35de2a4c5db..fc4965255460 100644 --- a/spring-hibernate4/src/main/resources/hibernate4Config.xml +++ b/spring-hibernate4/src/main/resources/hibernate4Config.xml @@ -19,7 +19,7 @@
- + From cb6253a2a575961652830794b8114f5f8d02b591 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 12:49:12 +0300 Subject: [PATCH 155/206] minor maven upgrades and cleanup --- spring-hibernate3/pom.xml | 381 +++++++++++++++++++------------------- spring-hibernate4/pom.xml | 3 +- 2 files changed, 197 insertions(+), 187 deletions(-) diff --git a/spring-hibernate3/pom.xml b/spring-hibernate3/pom.xml index 1859506e71af..79280963c1e7 100644 --- a/spring-hibernate3/pom.xml +++ b/spring-hibernate3/pom.xml @@ -1,188 +1,197 @@ - - 4.0.0 - org.baeldung - spring-hibernate3 - 0.1-SNAPSHOT - - spring-hibernate3 - war - - - - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-orm - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - - - - org.hibernate - hibernate-core - ${hibernate.version} - - - org.javassist - javassist - 3.17.1-GA - - - mysql - mysql-connector-java - ${mysql-connector-java.version} - runtime - - - - - - com.google.guava - guava - ${guava.version} - - - - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - test - - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-hibernate3 - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 3.6.10.Final - 5.1.25 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.0 - 1.8.9 - - - 1.4.2 - 2.14.1 - + + 4.0.0 + org.baeldung + spring-hibernate3 + 0.1-SNAPSHOT + + spring-hibernate3 + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + ${hibernate.version} + + + org.javassist + javassist + ${javassist.version} + + + mysql + mysql-connector-java + ${mysql-connector-java.version} + runtime + + + + org.apache.tomcat + tomcat-dbcp + ${tomcat-dbcp.version} + + + + + + com.google.guava + guava + ${guava.version} + + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + test + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-hibernate3 + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + 3.18.0-GA + + + 3.6.10.Final + 5.1.25 + 7.0.41 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.2 + 2.15 + \ No newline at end of file diff --git a/spring-hibernate4/pom.xml b/spring-hibernate4/pom.xml index ad9bd7f4bb86..f1846c7350e5 100644 --- a/spring-hibernate4/pom.xml +++ b/spring-hibernate4/pom.xml @@ -50,7 +50,7 @@ org.apache.tomcat tomcat-dbcp - 7.0.41 + ${tomcat-dbcp.version} @@ -173,6 +173,7 @@ 4.2.2.Final 5.1.25 + 7.0.41 1.7.5 From 561ec82250fdd96bd8696324a8b32899c4e58b2a Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 12:51:44 +0300 Subject: [PATCH 156/206] connection pooling work --- .../main/java/org/baeldung/spring/PersistenceConfig.java | 6 +++--- spring-hibernate3/src/main/resources/persistenceConfig.xml | 2 +- .../{HibernateXmlConfig.java => PersistenceXmlConfig.java} | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) rename spring-hibernate4/src/main/java/org/baeldung/spring/{HibernateXmlConfig.java => PersistenceXmlConfig.java} (87%) diff --git a/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java index b205c27cdc63..473c0c1714b4 100644 --- a/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ b/spring-hibernate3/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -4,6 +4,7 @@ import javax.sql.DataSource; +import org.apache.tomcat.dbcp.dbcp.BasicDataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -11,7 +12,6 @@ import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.hibernate3.HibernateTransactionManager; import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -35,7 +35,7 @@ public PersistenceConfig() { public AnnotationSessionFactoryBean sessionFactory() { final AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); - sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.persistence.model" }); sessionFactory.setHibernateProperties(hibernateProperties()); return sessionFactory; @@ -43,7 +43,7 @@ public AnnotationSessionFactoryBean sessionFactory() { @Bean public DataSource dataSource() { - final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + final BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); diff --git a/spring-hibernate3/src/main/resources/persistenceConfig.xml b/spring-hibernate3/src/main/resources/persistenceConfig.xml index 0dc729f815dd..62bccc1f2252 100644 --- a/spring-hibernate3/src/main/resources/persistenceConfig.xml +++ b/spring-hibernate3/src/main/resources/persistenceConfig.xml @@ -19,7 +19,7 @@ - + diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/HibernateXmlConfig.java b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java similarity index 87% rename from spring-hibernate4/src/main/java/org/baeldung/spring/HibernateXmlConfig.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java index 10ead2fd6c1b..f7b11b19a225 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/HibernateXmlConfig.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/PersistenceXmlConfig.java @@ -9,9 +9,9 @@ @EnableTransactionManagement @ComponentScan({ "org.baeldung.spring.persistence.dao", "org.baeldung.spring.persistence.service" }) @ImportResource({ "classpath:hibernate4Config.xml" }) -public class HibernateXmlConfig { +public class PersistenceXmlConfig { - public HibernateXmlConfig() { + public PersistenceXmlConfig() { super(); } From c25eaced346fc4cd9b3f2dd650e0bc5b11289e72 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 23:03:26 +0300 Subject: [PATCH 157/206] minor maven upgrade --- spring-all/pom.xml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/spring-all/pom.xml b/spring-all/pom.xml index 30dd39c40012..9dfb42a62309 100644 --- a/spring-all/pom.xml +++ b/spring-all/pom.xml @@ -42,7 +42,7 @@ org.javassist javassist - 3.17.1-GA + ${javassist.version} mysql @@ -71,7 +71,7 @@ javax.servlet jstl - 1.2 + ${jstl.version} runtime @@ -84,14 +84,14 @@ - + org.springframework spring-test ${org.springframework.version} test - + junit junit-dep @@ -131,8 +131,8 @@ - - + + org.apache.maven.plugins maven-war-plugin 2.3 @@ -140,7 +140,7 @@ false - + org.apache.maven.plugins maven-surefire-plugin @@ -184,6 +184,8 @@ 3.2.3.RELEASE 3.1.4.RELEASE + 3.18.0-GA + 1.2 4.2.2.Final @@ -208,12 +210,12 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 1.4.2 - 2.14.1 + 2.15 \ No newline at end of file From 3dc244109cd9e7bf9a2b045fde26ebd51fea6fdb Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 23:04:22 +0300 Subject: [PATCH 158/206] minor eclipse artifacts --- spring-all/.classpath | 3 +-- spring-all/.settings/org.eclipse.jdt.core.prefs | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/spring-all/.classpath b/spring-all/.classpath index eed10d8a8b04..75e85b7b7568 100644 --- a/spring-all/.classpath +++ b/spring-all/.classpath @@ -22,7 +22,7 @@ - + @@ -30,7 +30,6 @@ - diff --git a/spring-all/.settings/org.eclipse.jdt.core.prefs b/spring-all/.settings/org.eclipse.jdt.core.prefs index 723e5b12451a..13a747365774 100644 --- a/spring-all/.settings/org.eclipse.jdt.core.prefs +++ b/spring-all/.settings/org.eclipse.jdt.core.prefs @@ -5,9 +5,9 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -92,4 +92,4 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.source=1.5 From ac29c2e553fe7d816cc01578c3b7d6923b4392e1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 4 Jul 2013 23:05:27 +0300 Subject: [PATCH 159/206] minor eclipse artifacts --- spring-all/.classpath | 3 ++- spring-all/.settings/org.eclipse.jdt.core.prefs | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/spring-all/.classpath b/spring-all/.classpath index 75e85b7b7568..eed10d8a8b04 100644 --- a/spring-all/.classpath +++ b/spring-all/.classpath @@ -22,7 +22,7 @@ - + @@ -30,6 +30,7 @@ + diff --git a/spring-all/.settings/org.eclipse.jdt.core.prefs b/spring-all/.settings/org.eclipse.jdt.core.prefs index 13a747365774..723e5b12451a 100644 --- a/spring-all/.settings/org.eclipse.jdt.core.prefs +++ b/spring-all/.settings/org.eclipse.jdt.core.prefs @@ -5,9 +5,9 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate @@ -92,4 +92,4 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.source=1.7 From bdc54a57b1930af94482f6d310dfec2626523f27 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 5 Jul 2013 01:44:43 +0300 Subject: [PATCH 160/206] bean examples --- .../main/java/org/baeldung/di/core/BeanA.java | 14 ++++++++++++++ .../main/java/org/baeldung/di/core/BeanB.java | 8 ++++++++ .../java/org/baeldung/di/core/IBeanB.java | 5 +++++ .../di/spring/ContextWithJavaConfig.java | 16 ++++++++++++++++ ...dencyInjectionWithJavaIntegrationTest.java | 19 +++++++++++++++++++ 5 files changed, 62 insertions(+) create mode 100644 spring-all/src/main/java/org/baeldung/di/core/BeanA.java create mode 100644 spring-all/src/main/java/org/baeldung/di/core/BeanB.java create mode 100644 spring-all/src/main/java/org/baeldung/di/core/IBeanB.java create mode 100644 spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java create mode 100644 spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java diff --git a/spring-all/src/main/java/org/baeldung/di/core/BeanA.java b/spring-all/src/main/java/org/baeldung/di/core/BeanA.java new file mode 100644 index 000000000000..714ee490153c --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/di/core/BeanA.java @@ -0,0 +1,14 @@ +package org.baeldung.di.core; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +@Component +public class BeanA { + + @Autowired + @Qualifier("beanB2") + private IBeanB dependency; + +} diff --git a/spring-all/src/main/java/org/baeldung/di/core/BeanB.java b/spring-all/src/main/java/org/baeldung/di/core/BeanB.java new file mode 100644 index 000000000000..8ac65e502311 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/di/core/BeanB.java @@ -0,0 +1,8 @@ +package org.baeldung.di.core; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB implements IBeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/di/core/IBeanB.java b/spring-all/src/main/java/org/baeldung/di/core/IBeanB.java new file mode 100644 index 000000000000..3eec2adc0f8b --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/di/core/IBeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.di.core; + +public interface IBeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java new file mode 100644 index 000000000000..2507a95de3b3 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.di.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.di") +public class ContextWithJavaConfig { + + public ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java b/spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java new file mode 100644 index 000000000000..f06d930a7f29 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.di.core; + +import org.baeldung.di.spring.ContextWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class DependencyInjectionWithJavaIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} From 843c33616a6d034242e24d0faf15d74b4a01a6bc Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 5 Jul 2013 11:58:35 +0300 Subject: [PATCH 161/206] exception work --- .../java/org/baeldung/di/core/IBeanB.java | 5 ----- .../di/spring/ContextWithJavaConfig.java | 16 ---------------- .../cause1}/BeanA.java | 8 +++----- .../cause1/BeanB.java | 5 +++++ .../cause3/BeanA.java | 19 +++++++++++++++++++ .../cause3}/BeanB.java | 2 +- .../cause3/IBeanB.java | 5 +++++ .../spring/Cause1ContextWithJavaConfig.java | 16 ++++++++++++++++ .../spring/Cause2ContextWithJavaConfig.java | 16 ++++++++++++++++ .../spring/Cause3ContextWithJavaConfig.java | 16 ++++++++++++++++ ...anDefinitionExceptionIntegrationTest.java} | 8 ++++---- ...eanDefinitionExceptionIntegrationTest.java | 19 +++++++++++++++++++ ...eanDefinitionExceptionIntegrationTest.java | 19 +++++++++++++++++++ 13 files changed, 123 insertions(+), 31 deletions(-) delete mode 100644 spring-all/src/main/java/org/baeldung/di/core/IBeanB.java delete mode 100644 spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java rename spring-all/src/main/java/org/baeldung/{di/core => ex/nosuchbeandefinitionexception/cause1}/BeanA.java (51%) create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java rename spring-all/src/main/java/org/baeldung/{di/core => ex/nosuchbeandefinitionexception/cause3}/BeanB.java (63%) create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java rename spring-all/src/test/java/org/baeldung/{di/core/DependencyInjectionWithJavaIntegrationTest.java => ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java} (55%) create mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java create mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java diff --git a/spring-all/src/main/java/org/baeldung/di/core/IBeanB.java b/spring-all/src/main/java/org/baeldung/di/core/IBeanB.java deleted file mode 100644 index 3eec2adc0f8b..000000000000 --- a/spring-all/src/main/java/org/baeldung/di/core/IBeanB.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.di.core; - -public interface IBeanB { - // -} diff --git a/spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java deleted file mode 100644 index 2507a95de3b3..000000000000 --- a/spring-all/src/main/java/org/baeldung/di/spring/ContextWithJavaConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.baeldung.di.spring; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("org.baeldung.di") -public class ContextWithJavaConfig { - - public ContextWithJavaConfig() { - super(); - } - - // beans - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/di/core/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java similarity index 51% rename from spring-all/src/main/java/org/baeldung/di/core/BeanA.java rename to spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java index 714ee490153c..c664309426ff 100644 --- a/spring-all/src/main/java/org/baeldung/di/core/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java @@ -1,14 +1,12 @@ -package org.baeldung.di.core; +package org.baeldung.ex.nosuchbeandefinitionexception.cause1; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @Component public class BeanA { @Autowired - @Qualifier("beanB2") - private IBeanB dependency; + private BeanB dependency; -} +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java new file mode 100644 index 000000000000..8a198422e801 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause1; + +public class BeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java new file mode 100644 index 000000000000..4341a11c8475 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause3; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +@Component +public class BeanA implements InitializingBean { + + @Autowired + private ApplicationContext context; + + @Override + public final void afterPropertiesSet() { + context.getBean("test"); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/di/core/BeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java similarity index 63% rename from spring-all/src/main/java/org/baeldung/di/core/BeanB.java rename to spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java index 8ac65e502311..e4461477be54 100644 --- a/spring-all/src/main/java/org/baeldung/di/core/BeanB.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java @@ -1,4 +1,4 @@ -package org.baeldung.di.core; +package org.baeldung.ex.nosuchbeandefinitionexception.cause3; import org.springframework.stereotype.Component; diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java new file mode 100644 index 000000000000..ac3791945227 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause3; + +public interface IBeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java new file mode 100644 index 000000000000..4eb6161f3d9f --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.di.cause1") +public class Cause1ContextWithJavaConfig { + + public Cause1ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java new file mode 100644 index 000000000000..ade8692bb4aa --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.di.cause2") +public class Cause2ContextWithJavaConfig { + + public Cause2ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java new file mode 100644 index 000000000000..21d36f2ba692 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.di.cause2") +public class Cause3ContextWithJavaConfig { + + public Cause3ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java similarity index 55% rename from spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java rename to spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java index f06d930a7f29..aed37a125a85 100644 --- a/spring-all/src/test/java/org/baeldung/di/core/DependencyInjectionWithJavaIntegrationTest.java +++ b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java @@ -1,6 +1,6 @@ -package org.baeldung.di.core; +package org.baeldung.ex.nosuchbeandefinitionexception; -import org.baeldung.di.spring.ContextWithJavaConfig; +import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause1ContextWithJavaConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; @@ -8,8 +8,8 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) -public class DependencyInjectionWithJavaIntegrationTest { +@ContextConfiguration(classes = { Cause1ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause1NoSuchBeanDefinitionExceptionIntegrationTest { @Test public final void givenContextIsInitialized_thenNoException() { diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java new file mode 100644 index 000000000000..90d7317f4444 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception; + +import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause2ContextWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { Cause2ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause2NoSuchBeanDefinitionExceptionIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java new file mode 100644 index 000000000000..0e2123b7ffd7 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception; + +import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause3ContextWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { Cause3ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause3NoSuchBeanDefinitionExceptionIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} From f380ca54f2df9ebbf9b75dff66842a5e0e37ed5c Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 5 Jul 2013 12:01:15 +0300 Subject: [PATCH 162/206] exception work --- .../nosuchbeandefinitionexception/cause2/BeanA.java | 12 ++++++++++++ .../nosuchbeandefinitionexception/cause2/BeanB1.java | 8 ++++++++ .../nosuchbeandefinitionexception/cause2/BeanB2.java | 8 ++++++++ .../nosuchbeandefinitionexception/cause2/IBeanB.java | 5 +++++ .../spring/Cause3ContextWithJavaConfig.java | 2 +- 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java new file mode 100644 index 000000000000..2b454bfabb7a --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java @@ -0,0 +1,12 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class BeanA { + + @Autowired + private IBeanB dependency; + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java new file mode 100644 index 000000000000..877f40066886 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java @@ -0,0 +1,8 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB1 implements IBeanB { + // +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java new file mode 100644 index 000000000000..6bf4160966e6 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java @@ -0,0 +1,8 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB2 implements IBeanB { + // +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java new file mode 100644 index 000000000000..3e70126c1a94 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +public interface IBeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java index 21d36f2ba692..50fa4f7e53e8 100644 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java @@ -4,7 +4,7 @@ import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan("org.baeldung.di.cause2") +@ComponentScan("org.baeldung.di.cause3") public class Cause3ContextWithJavaConfig { public Cause3ContextWithJavaConfig() { From 27d0f4358931afd38ee63f33a883d9314747a0ee Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 5 Jul 2013 12:02:10 +0300 Subject: [PATCH 163/206] exception work --- .../spring/Cause1ContextWithJavaConfig.java | 2 +- .../spring/Cause2ContextWithJavaConfig.java | 2 +- .../spring/Cause3ContextWithJavaConfig.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java index 4eb6161f3d9f..5ba971baa9d6 100644 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java @@ -4,7 +4,7 @@ import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan("org.baeldung.di.cause1") +@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause1") public class Cause1ContextWithJavaConfig { public Cause1ContextWithJavaConfig() { diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java index ade8692bb4aa..9f4816ef7c00 100644 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java @@ -4,7 +4,7 @@ import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan("org.baeldung.di.cause2") +@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause2") public class Cause2ContextWithJavaConfig { public Cause2ContextWithJavaConfig() { diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java index 50fa4f7e53e8..a8d0fbe37bf0 100644 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java @@ -4,7 +4,7 @@ import org.springframework.context.annotation.Configuration; @Configuration -@ComponentScan("org.baeldung.di.cause3") +@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause3") public class Cause3ContextWithJavaConfig { public Cause3ContextWithJavaConfig() { From 8871fc802eea6c7fa96285e242d835fc8320b54a Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 5 Jul 2013 12:09:10 +0300 Subject: [PATCH 164/206] spring exception work --- .../ex/nosuchbeandefinitionexception/cause3/BeanA.java | 6 +++--- .../ex/nosuchbeandefinitionexception/cause3/BeanB.java | 8 -------- .../ex/nosuchbeandefinitionexception/cause3/IBeanB.java | 5 ----- 3 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java index 4341a11c8475..091d3f1aa82b 100644 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java @@ -12,8 +12,8 @@ public class BeanA implements InitializingBean { private ApplicationContext context; @Override - public final void afterPropertiesSet() { - context.getBean("test"); + public void afterPropertiesSet() { + context.getBean("someBeanName"); } -} +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java deleted file mode 100644 index e4461477be54..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanB.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause3; - -import org.springframework.stereotype.Component; - -@Component -public class BeanB implements IBeanB { - // -} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java deleted file mode 100644 index ac3791945227..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/IBeanB.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause3; - -public interface IBeanB { - // -} From 200956b783c1c58b7f8302164057ac320a53e6cb Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 12 Jul 2013 15:48:25 +0300 Subject: [PATCH 165/206] minor maven upgrades --- spring-jpa/pom.xml | 4 ++-- spring-mvc-java/pom.xml | 4 ++-- spring-mvc/pom.xml | 4 ++-- spring-security-basic-auth/pom.xml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-jpa/pom.xml b/spring-jpa/pom.xml index e3b864c3e7bb..1f8ba8d6756a 100644 --- a/spring-jpa/pom.xml +++ b/spring-jpa/pom.xml @@ -186,12 +186,12 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 1.4.2 - 2.14.1 + 2.15 \ No newline at end of file diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index eb3831b4aae7..66e6d8f00940 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -147,12 +147,12 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 1.4.2 - 2.14.1 + 2.15 \ No newline at end of file diff --git a/spring-mvc/pom.xml b/spring-mvc/pom.xml index b46d4b484e78..7427a45896ce 100644 --- a/spring-mvc/pom.xml +++ b/spring-mvc/pom.xml @@ -147,12 +147,12 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 1.4.2 - 2.14.1 + 2.15 \ No newline at end of file diff --git a/spring-security-basic-auth/pom.xml b/spring-security-basic-auth/pom.xml index 404a21d6e794..16059e3e7e29 100644 --- a/spring-security-basic-auth/pom.xml +++ b/spring-security-basic-auth/pom.xml @@ -205,7 +205,7 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 From a07a7d51c7346989a0205f244e20b8cf48639084 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 12 Jul 2013 15:49:40 +0300 Subject: [PATCH 166/206] minor maven upgrades --- spring-mvc-xml/pom.xml | 4 ++-- spring-security-custom/pom.xml | 2 +- spring-security-login/pom.xml | 2 +- spring-security-rest-full/pom.xml | 2 +- spring-security-rest/pom.xml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-mvc-xml/pom.xml b/spring-mvc-xml/pom.xml index ecde675bfcd4..3fd260b79a58 100644 --- a/spring-mvc-xml/pom.xml +++ b/spring-mvc-xml/pom.xml @@ -131,9 +131,9 @@ 1.9.5 4.2.4 - 4.2.4 + 4.2.5 - 1.8.0 + 1.8.1 1.8.9 diff --git a/spring-security-custom/pom.xml b/spring-security-custom/pom.xml index 7e19df91ed4a..ac00c65bbce7 100644 --- a/spring-security-custom/pom.xml +++ b/spring-security-custom/pom.xml @@ -231,7 +231,7 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index 48ad53880793..4acf8ce02acd 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -201,7 +201,7 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 diff --git a/spring-security-rest-full/pom.xml b/spring-security-rest-full/pom.xml index a0d81a323bb0..e6e4c073c39e 100644 --- a/spring-security-rest-full/pom.xml +++ b/spring-security-rest-full/pom.xml @@ -247,7 +247,7 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml index 0e206379d7d8..3cf7aef1285d 100644 --- a/spring-security-rest/pom.xml +++ b/spring-security-rest/pom.xml @@ -204,7 +204,7 @@ 4.2.4 4.2.5 - 1.8.0 + 1.8.1 1.8.9 From 10cff430f14d8aabe38656a599a71dada7c3efee Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 12 Jul 2013 15:52:06 +0300 Subject: [PATCH 167/206] initial work on digest security project --- spring-security-digest-auth/.classpath | 31 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-digest-auth/.gitignore | 13 ++ spring-security-digest-auth/.project | 59 +++++ .../.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 ++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 5 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-digest-auth/.springBeans | 14 ++ spring-security-digest-auth/README.md | 4 + spring-security-digest-auth/pom.xml | 216 ++++++++++++++++++ .../persistence/service/FooService.java | 23 ++ .../MyBasicAuthenticationEntryPoint.java | 31 +++ .../java/org/baeldung/spring/MvcConfig.java | 39 ++++ .../baeldung/spring/PersistenceConfig.java | 14 ++ .../baeldung/spring/SecSecurityConfig.java | 16 ++ .../java/org/baeldung/spring/WebConfig.java | 17 ++ .../web/controller/FooController.java | 74 ++++++ .../org/baeldung/web/controller/LinkUtil.java | 30 +++ .../web/controller/ResourceCreated.java | 35 +++ ...esourceCreatedDiscoverabilityListener.java | 35 +++ .../controller/SingleResourceRetrieved.java | 29 +++ ...ourceRetrievedDiscoverabilityListener.java | 32 +++ .../web/controller/TestController.java | 28 +++ .../main/java/org/baeldung/web/dto/Foo.java | 11 + .../src/main/resources/logback.xml | 20 ++ .../src/main/resources/webSecurityConfig.xml | 25 ++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/homepage.jsp | 7 + .../src/main/webapp/WEB-INF/web.xml | 52 +++++ .../src/test/resources/.gitignore | 13 ++ 38 files changed, 1075 insertions(+) create mode 100644 spring-security-digest-auth/.classpath create mode 100644 spring-security-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-digest-auth/.gitignore create mode 100644 spring-security-digest-auth/.project create mode 100644 spring-security-digest-auth/.settings/.jsdtscope create mode 100644 spring-security-digest-auth/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-digest-auth/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-digest-auth/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-digest-auth/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-digest-auth/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-digest-auth/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-digest-auth/.springBeans create mode 100644 spring-security-digest-auth/README.md create mode 100644 spring-security-digest-auth/pom.xml create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java create mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java create mode 100644 spring-security-digest-auth/src/main/resources/logback.xml create mode 100644 spring-security-digest-auth/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-security-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp create mode 100644 spring-security-digest-auth/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-digest-auth/src/test/resources/.gitignore diff --git a/spring-security-digest-auth/.classpath b/spring-security-digest-auth/.classpath new file mode 100644 index 000000000000..5dea19367768 --- /dev/null +++ b/spring-security-digest-auth/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-digest-auth/.gitignore b/spring-security-digest-auth/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-digest-auth/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-digest-auth/.project b/spring-security-digest-auth/.project new file mode 100644 index 000000000000..a5c72c83aeb6 --- /dev/null +++ b/spring-security-digest-auth/.project @@ -0,0 +1,59 @@ + + + spring-security-digest-auth + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-security-digest-auth/.settings/.jsdtscope b/spring-security-digest-auth/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-digest-auth/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-digest-auth/.settings/org.eclipse.jdt.core.prefs b/spring-security-digest-auth/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..df8135651462 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-digest-auth/.settings/org.eclipse.jdt.ui.prefs b/spring-security-digest-auth/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-digest-auth/.settings/org.eclipse.m2e.core.prefs b/spring-security-digest-auth/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-digest-auth/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-digest-auth/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.common.component b/spring-security-digest-auth/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..6333967c73a3 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..b46bc511b943 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.validation.prefs b/spring-security-digest-auth/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-digest-auth/.springBeans b/spring-security-digest-auth/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-security-digest-auth/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-security-digest-auth/README.md b/spring-security-digest-auth/README.md new file mode 100644 index 000000000000..e42590f8935a --- /dev/null +++ b/spring-security-digest-auth/README.md @@ -0,0 +1,4 @@ +========= + +Relevant Article: +- [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-digest-authentication) diff --git a/spring-security-digest-auth/pom.xml b/spring-security-digest-auth/pom.xml new file mode 100644 index 000000000000..73d1ced5970b --- /dev/null +++ b/spring-security-digest-auth/pom.xml @@ -0,0 +1,216 @@ + + 4.0.0 + org.baeldung + spring-security-digest-auth + 0.1-SNAPSHOT + + spring-security-digest-auth + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + 14.0.1 + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-digest-auth + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.2 + 2.15 + + + \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java b/spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java new file mode 100644 index 000000000000..02db7a733a6b --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java @@ -0,0 +1,23 @@ +package org.baeldung.persistence.service; + +import org.baeldung.web.dto.Foo; +import org.springframework.stereotype.Service; + +@Service +public class FooService { + + public FooService() { + super(); + } + + // API + + public Foo getById(final Long id) { + return null; + } + + public Long create(final Foo resource) { + return null; + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java new file mode 100644 index 000000000000..968237227f63 --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java @@ -0,0 +1,31 @@ +package org.baeldung.security.basic; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +@Component +public class MyBasicAuthenticationEntryPoint extends BasicAuthenticationEntryPoint { + + @Override + public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException, ServletException { + response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\""); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + final PrintWriter writer = response.getWriter(); + writer.println("HTTP Status " + HttpServletResponse.SC_UNAUTHORIZED + " - " + authException.getMessage()); + } + + @Override + public void afterPropertiesSet() throws Exception { + setRealmName("Baeldung"); + super.afterPropertiesSet(); + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java new file mode 100644 index 000000000000..74c11478ee2e --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@Configuration +@EnableWebMvc +public class MvcConfig extends WebMvcConfigurerAdapter { + + public MvcConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/homepage.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java new file mode 100644 index 000000000000..4ea0053f4845 --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.persistence") +public class PersistenceConfig { + + public PersistenceConfig() { + super(); + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java new file mode 100644 index 000000000000..4ce80dab9f1c --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +@ComponentScan("org.baeldung.security") +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java new file mode 100644 index 000000000000..fa6f5f6d5626 --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java @@ -0,0 +1,17 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ComponentScan("org.baeldung.web") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // API + +} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java new file mode 100644 index 000000000000..daa797ee368e --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java @@ -0,0 +1,74 @@ +package org.baeldung.web.controller; + +import java.net.URI; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.baeldung.persistence.service.FooService; +import org.baeldung.web.dto.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.util.UriComponentsBuilder; +import org.springframework.web.util.UriTemplate; + +import com.google.common.base.Preconditions; + +@Controller +@RequestMapping(value = "/foo") +public class FooController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + @Autowired + private FooService service; + + public FooController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { + return new Foo(); + } + + @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { + final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); + + eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); + return resourceById; + } + + @RequestMapping(value = "admin/foo", method = RequestMethod.POST) + @ResponseStatus(HttpStatus.CREATED) + public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { + Preconditions.checkNotNull(resource); + final Long idOfCreatedResource = service.create(resource); + + eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); + } + + @RequestMapping(value = "admin", method = RequestMethod.GET) + @ResponseStatus(value = HttpStatus.NO_CONTENT) + public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { + final String rootUri = request.getRequestURL().toString(); + + final URI fooUri = new UriTemplate("{rootUri}/{resource}").expand(rootUri, "foo"); + final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); + response.addHeader("Link", linkToFoo); + } +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java new file mode 100644 index 000000000000..a41ebb5a5cdd --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java @@ -0,0 +1,30 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletResponse; + +/** + * Provides some constants and utility methods to build a Link Header to be stored in the {@link HttpServletResponse} object + */ +public final class LinkUtil { + + private LinkUtil() { + throw new AssertionError(); + } + + // + + /** + * Creates a Link Header to be stored in the {@link HttpServletResponse} to provide Discoverability features to the user + * + * @param uri + * the base uri + * @param rel + * the relative path + * + * @return the complete url + */ + public static String createLinkHeader(final String uri, final String rel) { + return "<" + uri + ">; rel=\"" + rel + "\""; + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java new file mode 100644 index 000000000000..a67788810161 --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java @@ -0,0 +1,35 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationEvent; + +public class ResourceCreated extends ApplicationEvent { + private final HttpServletResponse response; + private final HttpServletRequest request; + private final long idOfNewResource; + + public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { + super(source); + + this.request = request; + this.response = response; + this.idOfNewResource = idOfNewResource; + } + + // API + + public HttpServletResponse getResponse() { + return response; + } + + public HttpServletRequest getRequest() { + return request; + } + + public long getIdOfNewResource() { + return idOfNewResource; + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java new file mode 100644 index 000000000000..8d19ef82fc63 --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java @@ -0,0 +1,35 @@ +package org.baeldung.web.controller; + +import java.net.URI; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; +import org.springframework.web.util.UriTemplate; + +import com.google.common.base.Preconditions; +import com.google.common.net.HttpHeaders; + +@Component +class ResourceCreatedDiscoverabilityListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final ResourceCreated resourceCreatedEvent) { + Preconditions.checkNotNull(resourceCreatedEvent); + + final HttpServletRequest request = resourceCreatedEvent.getRequest(); + final HttpServletResponse response = resourceCreatedEvent.getResponse(); + final long idOfNewResource = resourceCreatedEvent.getIdOfNewResource(); + + addLinkHeaderOnResourceCreation(request, response, idOfNewResource); + } + + void addLinkHeaderOnResourceCreation(final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { + final String requestUrl = request.getRequestURL().toString(); + final URI uri = new UriTemplate("{requestUrl}/{idOfNewResource}").expand(requestUrl, idOfNewResource); + response.setHeader(HttpHeaders.LOCATION, uri.toASCIIString()); + } + +} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java new file mode 100644 index 000000000000..3de791810549 --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java @@ -0,0 +1,29 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationEvent; + +public class SingleResourceRetrieved extends ApplicationEvent { + private final HttpServletResponse response; + private final HttpServletRequest request; + + public SingleResourceRetrieved(final Object source, final HttpServletRequest request, final HttpServletResponse response) { + super(source); + + this.request = request; + this.response = response; + } + + // API + + public HttpServletResponse getResponse() { + return response; + } + + public HttpServletRequest getRequest() { + return request; + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java new file mode 100644 index 000000000000..45cd7c4d131a --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java @@ -0,0 +1,32 @@ +package org.baeldung.web.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +import com.google.common.base.Preconditions; + +@Component +class SingleResourceRetrievedDiscoverabilityListener implements ApplicationListener { + + @Override + public void onApplicationEvent(final SingleResourceRetrieved resourceRetrievedEvent) { + Preconditions.checkNotNull(resourceRetrievedEvent); + + final HttpServletRequest request = resourceRetrievedEvent.getRequest(); + final HttpServletResponse response = resourceRetrievedEvent.getResponse(); + addLinkHeaderOnSingleResourceRetrieval(request, response); + } + + void addLinkHeaderOnSingleResourceRetrieval(final HttpServletRequest request, final HttpServletResponse response) { + final StringBuffer requestURL = request.getRequestURL(); + final int positionOfLastSlash = requestURL.lastIndexOf("/"); + final String uriForResourceCreation = requestURL.substring(0, positionOfLastSlash); + + final String linkHeaderValue = LinkUtil.createLinkHeader(uriForResourceCreation, "collection"); + response.addHeader("Link", linkHeaderValue); + } + +} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java new file mode 100644 index 000000000000..f68cfb2eb7dc --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java @@ -0,0 +1,28 @@ +package org.baeldung.web.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class TestController { + + public TestController() { + super(); + } + + // API + + @RequestMapping("/permitAll") + @ResponseBody + public String permitAll() { + return "Permit All"; + } + + @RequestMapping("/securityNone") + @ResponseBody + public String securityNone() { + return "Security None"; + } + +} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java new file mode 100644 index 000000000000..352045989daa --- /dev/null +++ b/spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java @@ -0,0 +1,11 @@ +package org.baeldung.web.dto; + +import java.io.Serializable; + +public class Foo implements Serializable { + + public Foo() { + super(); + } + +} diff --git a/spring-security-digest-auth/src/main/resources/logback.xml b/spring-security-digest-auth/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-security-digest-auth/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..2b55ca1c7366 --- /dev/null +++ b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-security-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-digest-auth/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..461f32bde524 --- /dev/null +++ b/spring-security-digest-auth/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + Spring Security Basic Auth Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + index.html + + + \ No newline at end of file diff --git a/spring-security-digest-auth/src/test/resources/.gitignore b/spring-security-digest-auth/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-digest-auth/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From f7a0ef8578b1878c245c2a7b5f4bd86ec9987090 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 12 Jul 2013 16:17:49 +0300 Subject: [PATCH 168/206] digest config work --- .../src/main/resources/webSecurityConfig.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml index 2b55ca1c7366..ae554a8b69ef 100644 --- a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml @@ -7,16 +7,27 @@ - + - - + + + + + + + + + + - + From 32f77f46138526699b47ed2044353e6b1f93820e Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 12 Jul 2013 17:33:02 +0300 Subject: [PATCH 169/206] working spring security digest auth configuration --- .../src/main/resources/webSecurityConfig.xml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml index ae554a8b69ef..1d5703cb2614 100644 --- a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml @@ -5,14 +5,6 @@ http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - - - - - - - - @@ -25,6 +17,13 @@ + + + + + + + From 93c635ca29d79a8e600459e1aabaef5500bdfe5a Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 12 Jul 2013 17:34:50 +0300 Subject: [PATCH 170/206] minor readme work --- spring-security-digest-auth/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-security-digest-auth/README.md b/spring-security-digest-auth/README.md index e42590f8935a..507104ac6063 100644 --- a/spring-security-digest-auth/README.md +++ b/spring-security-digest-auth/README.md @@ -1,4 +1,4 @@ ========= Relevant Article: -- [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-digest-authentication) +- [Spring Security Digest Authentication](http://www.baeldung.com/spring-security-digest-authentication) From e7819aab7976b7631abd25cf3c38f09716ed9fec Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 13 Jul 2013 20:05:54 +0300 Subject: [PATCH 171/206] minor cleanup --- .../baeldung/spring/config/MainWebAppInitializer.java | 2 +- .../src/main/resources/webSecurityConfig.xml | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java index 6eb2dadcf275..5ef83b8afd0b 100644 --- a/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java +++ b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java @@ -19,7 +19,7 @@ public class MainWebAppInitializer implements WebApplicationInitializer { */ @Override public void onStartup(final ServletContext sc) throws ServletException { - System.out.println("GreenhouseWebAppInitializer.onStartup()"); + System.out.println("MainWebAppInitializer.onStartup()"); // Create the 'root' Spring application context final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); diff --git a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml index 08e84b96ec6f..de79430530bf 100644 --- a/spring-security-rest-full/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-full/src/main/resources/webSecurityConfig.xml @@ -1,8 +1,13 @@ - + http://www.springframework.org/schema/security + http://www.springframework.org/schema/security/spring-security-3.1.xsd + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> From f4ac4fa69916c9507bf91169ead589efe3986f08 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 14:03:04 +0300 Subject: [PATCH 172/206] documentation cleanup --- spring-all/README.md | 9 +++++++-- spring-hibernate3/README.md | 10 +++++++--- spring-hibernate4/README.md | 8 +++++--- spring-jpa/README.md | 5 ++++- spring-mvc-java/README.md | 6 +++++- spring-mvc-xml/README.md | 6 ++++-- spring-mvc/README.md | 5 ++++- spring-security-basic-auth/README.md | 5 ++++- spring-security-custom/README.md | 6 ++++-- spring-security-digest-auth/README.md | 5 ++++- spring-security-login/README.md | 12 ++++++------ spring-security-rest-full/README.md | 2 +- spring-security-rest/README.md | 6 ++++-- 13 files changed, 59 insertions(+), 26 deletions(-) diff --git a/spring-all/README.md b/spring-all/README.md index 78b34858c574..ae8db53b9808 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -1,6 +1,11 @@ ========= -This project is used to replicate Spring Exceptions only. -Relevant articles: + +## Spring Exceptions Example Project + +This project is used to replicate Spring Exceptions only. + + +### Relevant articles: - [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) - [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) - [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) diff --git a/spring-hibernate3/README.md b/spring-hibernate3/README.md index 6dcc602ef07d..f9839e34bff3 100644 --- a/spring-hibernate3/README.md +++ b/spring-hibernate3/README.md @@ -1,10 +1,13 @@ ========= -Relevant Article: +## Spring with Hibernate 3 Example Project + + +### Relevant ArticleS: - [Hibernate 3 with Spring](http://www.baeldung.com/hibernate3-spring) -Quick Start +### Quick Start ``` git clone git://github.com/eugenp/REST.git @@ -12,4 +15,5 @@ cd REST mvn install mvn cargo:run ``` -- note: starts on port 8082 + +- **note**: starts on port `8082` diff --git a/spring-hibernate4/README.md b/spring-hibernate4/README.md index 3c48826a2a4d..e9a6cc2be5e1 100644 --- a/spring-hibernate4/README.md +++ b/spring-hibernate4/README.md @@ -1,10 +1,12 @@ ========= -Relevant Article: +## Spring with Hibernate 4 Example Project + +### Relevant Articles: - [Hibernate 4 with Spring](http://www.baeldung.com/hibernate-4-spring) -Quick Start +### Quick Start ``` git clone git://github.com/eugenp/REST.git @@ -12,4 +14,4 @@ cd REST mvn install mvn cargo:run ``` -- note: starts on port 8082 +- **note**: starts on port `8082` diff --git a/spring-jpa/README.md b/spring-jpa/README.md index 9f63413d937d..b1a4dfcd85fb 100644 --- a/spring-jpa/README.md +++ b/spring-jpa/README.md @@ -1,5 +1,8 @@ ========= -Relevant Articles: +## Spring JPA Example Project + + +### Relevant Articles: - [Spring 3 and JPA with Hibernate](http://www.baeldung.com/2011/12/13/the-persistence-layer-with-spring-3-1-and-jpa/) diff --git a/spring-mvc-java/README.md b/spring-mvc-java/README.md index 1abc096086ed..e32eeec83a90 100644 --- a/spring-mvc-java/README.md +++ b/spring-mvc-java/README.md @@ -1,3 +1,7 @@ -[Spring MVC Tutorial Project](http://www.baeldung.com/spring-mvc-tutorial) ========= +## Spring MVC with Java Configuration Example Project + + +### Relevant Articles: +- [Spring MVC Tutorial](http://www.baeldung.com/spring-mvc-tutorial) diff --git a/spring-mvc-xml/README.md b/spring-mvc-xml/README.md index b67f11e4e7aa..d2872a778236 100644 --- a/spring-mvc-xml/README.md +++ b/spring-mvc-xml/README.md @@ -1,5 +1,7 @@ -Spring MVC Tutorial ========= -Relevant Articles: +## Spring MVC with XML Configuration Example Project + + +### Relevant Articles: - \ No newline at end of file diff --git a/spring-mvc/README.md b/spring-mvc/README.md index 857e0007da57..323bf274e055 100644 --- a/spring-mvc/README.md +++ b/spring-mvc/README.md @@ -1,6 +1,9 @@ ========= -Relevant Articles: +## Spring MVC Example Project + + +### Relevant Articles: - [Spring @RequestMapping](http://www.baeldung.com/spring-requestmapping) diff --git a/spring-security-basic-auth/README.md b/spring-security-basic-auth/README.md index 61f509f9e5a3..01be5f4b13b3 100644 --- a/spring-security-basic-auth/README.md +++ b/spring-security-basic-auth/README.md @@ -1,5 +1,8 @@ ========= -Relevant Article: +## Spring Security with Basic Authentication Example Project + + +### Relevant Article: - [Spring Security - security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) - [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-basic-authentication) diff --git a/spring-security-custom/README.md b/spring-security-custom/README.md index ebf695b9e3ec..fc4d243e7cfa 100644 --- a/spring-security-custom/README.md +++ b/spring-security-custom/README.md @@ -1,6 +1,8 @@ -Spring Security for REST ========= -Relevant Articles: +## Spring Security for REST Example Project + + +### Relevant Articles: - [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) - [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) \ No newline at end of file diff --git a/spring-security-digest-auth/README.md b/spring-security-digest-auth/README.md index 507104ac6063..3b93a84505ae 100644 --- a/spring-security-digest-auth/README.md +++ b/spring-security-digest-auth/README.md @@ -1,4 +1,7 @@ ========= -Relevant Article: +## Spring Security with Digest Authentication Example Project + + +### Relevant Article: - [Spring Security Digest Authentication](http://www.baeldung.com/spring-security-digest-authentication) diff --git a/spring-security-login/README.md b/spring-security-login/README.md index e1efae813e57..dd465e021983 100644 --- a/spring-security-login/README.md +++ b/spring-security-login/README.md @@ -1,14 +1,14 @@ ========= -## Spring Security Login Tutorial +## Spring Security Login Example Project + + +### Relevant Articles: +- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) +- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) ### Build the Project ``` mvn clean install ``` - - -### Relevant Articles: -- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) -- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) diff --git a/spring-security-rest-full/README.md b/spring-security-rest-full/README.md index c30bd3421672..89c63f17ee69 100644 --- a/spring-security-rest-full/README.md +++ b/spring-security-rest-full/README.md @@ -1,6 +1,6 @@ ========= -## Spring Security REST Tutorial +## Spring Security REST Example Project ### Build the Project diff --git a/spring-security-rest/README.md b/spring-security-rest/README.md index a7dd66cfbadc..11522e362f47 100644 --- a/spring-security-rest/README.md +++ b/spring-security-rest/README.md @@ -1,5 +1,7 @@ -Spring Security for REST ========= -Relevant Articles: +## Spring Security for REST Example Project + + +### Relevant Articles: - [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) \ No newline at end of file From 47db09849e2180b9c6875a40e33cc2eeb79048e1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 14:21:30 +0300 Subject: [PATCH 173/206] doc work --- spring-all/README.md | 1 + spring-security-custom/README.md | 2 +- spring-security-login/README.md | 1 + spring-security-rest-full/README.md | 5 ++++- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spring-all/README.md b/spring-all/README.md index ae8db53b9808..0541922dc9ec 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -9,4 +9,5 @@ This project is used to replicate Spring Exceptions only. - [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) - [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) - [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) +- [Spring NoSuchBeanDefinitionException](http://www.baeldung.com/spring-nosuchbeandefinitionexception) - [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) - checkout the `org.baeldung.properties` package for all scenarios of properties injection and usage \ No newline at end of file diff --git a/spring-security-custom/README.md b/spring-security-custom/README.md index fc4d243e7cfa..ecb07960eb0c 100644 --- a/spring-security-custom/README.md +++ b/spring-security-custom/README.md @@ -5,4 +5,4 @@ ### Relevant Articles: - [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) -- [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) \ No newline at end of file +- [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) diff --git a/spring-security-login/README.md b/spring-security-login/README.md index dd465e021983..256078f4b6ed 100644 --- a/spring-security-login/README.md +++ b/spring-security-login/README.md @@ -6,6 +6,7 @@ ### Relevant Articles: - [Spring Security Form Login](http://www.baeldung.com/spring-security-login) - [Spring Security Logout](http://www.baeldung.com/spring-security-logout) +- [Spring Security Expressions – hasRole Example](http://www.baeldung.com/spring-security-expressions-basic) ### Build the Project diff --git a/spring-security-rest-full/README.md b/spring-security-rest-full/README.md index 89c63f17ee69..daa0176cad05 100644 --- a/spring-security-rest-full/README.md +++ b/spring-security-rest-full/README.md @@ -3,12 +3,15 @@ ## Spring Security REST Example Project +### Relevant Articles: +- [Spring Security Expressions – hasRole Example](http://www.baeldung.com/spring-security-expressions-basic) + + ### Build the Project ``` mvn clean install ``` - ### Use the REST Service ``` From c1d0444ec814c17b5b9bb59e801f78ddf6e73aa2 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 14:45:56 +0300 Subject: [PATCH 174/206] project cleanup --- {spring-all => spring-exceptions}/.classpath | 0 {spring-all => spring-exceptions}/.gitignore | 0 {spring-all => spring-exceptions}/.project | 2 +- .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../org.eclipse.wst.common.component | 6 +- ....eclipse.wst.common.project.facet.core.xml | 0 ...rg.eclipse.wst.jsdt.ui.superType.container | 0 .../org.eclipse.wst.jsdt.ui.superType.name | 0 .../org.eclipse.wst.validation.prefs | 0 .../org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 {spring-all => spring-exceptions}/README.md | 0 {spring-all => spring-exceptions}/pom.xml | 6 +- .../cause1/BeanA.java | 0 .../cause1/BeanB.java | 0 .../cause2/BeanA.java | 0 .../cause2/BeanB1.java | 0 .../cause2/BeanB2.java | 0 .../cause2/IBeanB.java | 0 .../cause3/BeanA.java | 0 .../spring/Cause1ContextWithJavaConfig.java | 0 .../spring/Cause2ContextWithJavaConfig.java | 0 .../spring/Cause3ContextWithJavaConfig.java | 0 .../java/org/baeldung/persistence/Setup.java | 0 .../core/ComponentInXmlUsingProperties.java | 0 .../core/ComponentUsingProperties.java | 0 .../spring/PropertiesWithJavaConfig.java | 0 .../spring/PropertiesWithJavaConfigOther.java | 0 .../spring/PropertiesWithXmlConfig.java | 0 .../spring/PropertiesWithXmlConfigOne.java | 0 .../spring/PropertiesWithXmlConfigTwo.java | 0 .../baeldung/spring/config/CoreConfig.java | 0 .../spring/config/MainWebAppInitializer.java | 0 .../org/baeldung/spring/config/MvcConfig.java | 0 .../spring/config/PersistenceConfig.java | 0 .../src/main/resources/bar.properties | 0 .../main/resources/configForProperties.xml | 0 .../main/resources/configForPropertiesOne.xml | 0 .../main/resources/configForPropertiesTwo.xml | 0 .../src/main/resources/foo.properties | 0 .../src/main/resources/logback.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/sample.jsp | 0 .../src/main/webapp/WEB-INF/web_old.xml | 0 ...eanDefinitionExceptionIntegrationTest.java | 0 ...eanDefinitionExceptionIntegrationTest.java | 0 ...eanDefinitionExceptionIntegrationTest.java | 0 .../PropertiesWithJavaIntegrationTest.java | 0 ...ertiesWithMultipleXmlsIntegrationTest.java | 0 .../PropertiesWithXmlIntegrationTest.java | 0 .../src/test/resources/.gitignore | 0 .../java/org/baeldung/spring/MvcConfig.java | 3 +- .../src/main/resources/webSecurityConfig.xml | 34 +++---- .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 ++ .../src/main/webapp/WEB-INF/web.xml | 96 ++++++++++--------- 59 files changed, 85 insertions(+), 68 deletions(-) rename {spring-all => spring-exceptions}/.classpath (100%) rename {spring-all => spring-exceptions}/.gitignore (100%) rename {spring-all => spring-exceptions}/.project (98%) rename {spring-all => spring-exceptions}/.settings/.jsdtscope (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.wst.common.component (70%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-all => spring-exceptions}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-all => spring-exceptions}/.springBeans (100%) rename {spring-all => spring-exceptions}/README.md (100%) rename {spring-all => spring-exceptions}/pom.xml (98%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/persistence/Setup.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/spring/config/CoreConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/spring/config/MvcConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/java/org/baeldung/spring/config/PersistenceConfig.java (100%) rename {spring-all => spring-exceptions}/src/main/resources/bar.properties (100%) rename {spring-all => spring-exceptions}/src/main/resources/configForProperties.xml (100%) rename {spring-all => spring-exceptions}/src/main/resources/configForPropertiesOne.xml (100%) rename {spring-all => spring-exceptions}/src/main/resources/configForPropertiesTwo.xml (100%) rename {spring-all => spring-exceptions}/src/main/resources/foo.properties (100%) rename {spring-all => spring-exceptions}/src/main/resources/logback.xml (100%) rename {spring-all => spring-exceptions}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-all => spring-exceptions}/src/main/webapp/WEB-INF/view/sample.jsp (100%) rename {spring-all => spring-exceptions}/src/main/webapp/WEB-INF/web_old.xml (100%) rename {spring-all => spring-exceptions}/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java (100%) rename {spring-all => spring-exceptions}/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java (100%) rename {spring-all => spring-exceptions}/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java (100%) rename {spring-all => spring-exceptions}/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java (100%) rename {spring-all => spring-exceptions}/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java (100%) rename {spring-all => spring-exceptions}/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java (100%) rename {spring-all => spring-exceptions}/src/test/resources/.gitignore (100%) create mode 100644 spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-all/.classpath b/spring-exceptions/.classpath similarity index 100% rename from spring-all/.classpath rename to spring-exceptions/.classpath diff --git a/spring-all/.gitignore b/spring-exceptions/.gitignore similarity index 100% rename from spring-all/.gitignore rename to spring-exceptions/.gitignore diff --git a/spring-all/.project b/spring-exceptions/.project similarity index 98% rename from spring-all/.project rename to spring-exceptions/.project index 4ae82dabf052..8c9eba80050f 100644 --- a/spring-all/.project +++ b/spring-exceptions/.project @@ -1,6 +1,6 @@ - spring-all + spring-exceptions diff --git a/spring-all/.settings/.jsdtscope b/spring-exceptions/.settings/.jsdtscope similarity index 100% rename from spring-all/.settings/.jsdtscope rename to spring-exceptions/.settings/.jsdtscope diff --git a/spring-all/.settings/org.eclipse.jdt.core.prefs b/spring-exceptions/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-all/.settings/org.eclipse.jdt.core.prefs rename to spring-exceptions/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-all/.settings/org.eclipse.jdt.ui.prefs b/spring-exceptions/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-all/.settings/org.eclipse.jdt.ui.prefs rename to spring-exceptions/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-all/.settings/org.eclipse.m2e.core.prefs b/spring-exceptions/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-all/.settings/org.eclipse.m2e.core.prefs rename to spring-exceptions/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-all/.settings/org.eclipse.m2e.wtp.prefs b/spring-exceptions/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-all/.settings/org.eclipse.m2e.wtp.prefs rename to spring-exceptions/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-all/.settings/org.eclipse.wst.common.component b/spring-exceptions/.settings/org.eclipse.wst.common.component similarity index 70% rename from spring-all/.settings/org.eclipse.wst.common.component rename to spring-exceptions/.settings/org.eclipse.wst.common.component index 847c6ff6987a..7785d041baf6 100644 --- a/spring-all/.settings/org.eclipse.wst.common.component +++ b/spring-exceptions/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-exceptions/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-exceptions/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-exceptions/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-exceptions/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-exceptions/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-exceptions/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-all/.settings/org.eclipse.wst.validation.prefs b/spring-exceptions/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-all/.settings/org.eclipse.wst.validation.prefs rename to spring-exceptions/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-exceptions/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-exceptions/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-all/.springBeans b/spring-exceptions/.springBeans similarity index 100% rename from spring-all/.springBeans rename to spring-exceptions/.springBeans diff --git a/spring-all/README.md b/spring-exceptions/README.md similarity index 100% rename from spring-all/README.md rename to spring-exceptions/README.md diff --git a/spring-all/pom.xml b/spring-exceptions/pom.xml similarity index 98% rename from spring-all/pom.xml rename to spring-exceptions/pom.xml index 9dfb42a62309..ddbbd6ff1988 100644 --- a/spring-all/pom.xml +++ b/spring-exceptions/pom.xml @@ -1,10 +1,10 @@ 4.0.0 org.baeldung - spring-all + spring-exceptions 0.1-SNAPSHOT - spring-all + spring-exceptions war @@ -122,7 +122,7 @@ - spring-all + spring-exceptions src/main/resources diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java rename to spring-exceptions/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java diff --git a/spring-all/src/main/java/org/baeldung/persistence/Setup.java b/spring-exceptions/src/main/java/org/baeldung/persistence/Setup.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/persistence/Setup.java rename to spring-exceptions/src/main/java/org/baeldung/persistence/Setup.java diff --git a/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java b/spring-exceptions/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java rename to spring-exceptions/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java diff --git a/spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java b/spring-exceptions/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java rename to spring-exceptions/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java rename to spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java b/spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java rename to spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java b/spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java rename to spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java b/spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java rename to spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java b/spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java rename to spring-exceptions/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java diff --git a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java b/spring-exceptions/src/main/java/org/baeldung/spring/config/CoreConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java rename to spring-exceptions/src/main/java/org/baeldung/spring/config/CoreConfig.java diff --git a/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java b/spring-exceptions/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java rename to spring-exceptions/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java diff --git a/spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java b/spring-exceptions/src/main/java/org/baeldung/spring/config/MvcConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java rename to spring-exceptions/src/main/java/org/baeldung/spring/config/MvcConfig.java diff --git a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-exceptions/src/main/java/org/baeldung/spring/config/PersistenceConfig.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java rename to spring-exceptions/src/main/java/org/baeldung/spring/config/PersistenceConfig.java diff --git a/spring-all/src/main/resources/bar.properties b/spring-exceptions/src/main/resources/bar.properties similarity index 100% rename from spring-all/src/main/resources/bar.properties rename to spring-exceptions/src/main/resources/bar.properties diff --git a/spring-all/src/main/resources/configForProperties.xml b/spring-exceptions/src/main/resources/configForProperties.xml similarity index 100% rename from spring-all/src/main/resources/configForProperties.xml rename to spring-exceptions/src/main/resources/configForProperties.xml diff --git a/spring-all/src/main/resources/configForPropertiesOne.xml b/spring-exceptions/src/main/resources/configForPropertiesOne.xml similarity index 100% rename from spring-all/src/main/resources/configForPropertiesOne.xml rename to spring-exceptions/src/main/resources/configForPropertiesOne.xml diff --git a/spring-all/src/main/resources/configForPropertiesTwo.xml b/spring-exceptions/src/main/resources/configForPropertiesTwo.xml similarity index 100% rename from spring-all/src/main/resources/configForPropertiesTwo.xml rename to spring-exceptions/src/main/resources/configForPropertiesTwo.xml diff --git a/spring-all/src/main/resources/foo.properties b/spring-exceptions/src/main/resources/foo.properties similarity index 100% rename from spring-all/src/main/resources/foo.properties rename to spring-exceptions/src/main/resources/foo.properties diff --git a/spring-all/src/main/resources/logback.xml b/spring-exceptions/src/main/resources/logback.xml similarity index 100% rename from spring-all/src/main/resources/logback.xml rename to spring-exceptions/src/main/resources/logback.xml diff --git a/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-exceptions/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-exceptions/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-all/src/main/webapp/WEB-INF/view/sample.jsp b/spring-exceptions/src/main/webapp/WEB-INF/view/sample.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-exceptions/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-all/src/main/webapp/WEB-INF/web_old.xml b/spring-exceptions/src/main/webapp/WEB-INF/web_old.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/web_old.xml rename to spring-exceptions/src/main/webapp/WEB-INF/web_old.xml diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java rename to spring-exceptions/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java diff --git a/spring-all/src/test/resources/.gitignore b/spring-exceptions/src/test/resources/.gitignore similarity index 100% rename from spring-all/src/test/resources/.gitignore rename to spring-exceptions/src/test/resources/.gitignore diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java index 64bdf249445b..c76b6175d695 100644 --- a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java +++ b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -1,6 +1,7 @@ package org.baeldung.spring; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; @@ -8,7 +9,7 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; -// @Configuration +@Configuration @EnableWebMvc public class MvcConfig extends WebMvcConfigurerAdapter { diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-custom/src/main/resources/webSecurityConfig.xml index 590adab8cee4..55974f664da8 100644 --- a/spring-security-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-custom/src/main/resources/webSecurityConfig.xml @@ -1,26 +1,28 @@ - - - - + + + + + + + - - + - - - - - - - + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-custom/src/main/webapp/WEB-INF/web.xml index db64386b1480..e7fbf52aaeea 100644 --- a/spring-security-custom/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-custom/src/main/webapp/WEB-INF/web.xml @@ -1,52 +1,60 @@ - + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> - Spring Security Custom Application + Spring Security Custom Application - - - contextClass - + + + contextClass + org.springframework.web.context.support.AnnotationConfigWebApplicationContext - - - contextConfigLocation - org.baeldung.spring - - - - org.springframework.web.context.ContextLoaderListener - - - - - api - org.springframework.web.servlet.DispatcherServlet - 1 - - - api - /api/* - - - - - springSecurityFilterChain - org.springframework.web.filter.DelegatingFilterProxy - - - springSecurityFilterChain - /* - - - - index.html - + + + contextConfigLocation + org.baeldung.spring + + + + org.springframework.web.context.ContextLoaderListener + + + + + api + org.springframework.web.servlet.DispatcherServlet + 1 + + + api + /api/* + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + /* + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + + \ No newline at end of file From 76351a44eae68b453582b8c03dec2dd0f580ca82 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 14:48:25 +0300 Subject: [PATCH 175/206] spring all project --- spring-all/.classpath | 37 +++ spring-all/.gitignore | 13 ++ spring-all/.project | 60 +++++ spring-all/.settings/.jsdtscope | 12 + .../.settings/org.eclipse.jdt.core.prefs | 95 ++++++++ spring-all/.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 6 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-all/.springBeans | 14 ++ spring-all/README.md | 13 ++ spring-all/pom.xml | 221 ++++++++++++++++++ .../cause1/BeanA.java | 12 + .../cause1/BeanB.java | 5 + .../cause2/BeanA.java | 12 + .../cause2/BeanB1.java | 8 + .../cause2/BeanB2.java | 8 + .../cause2/IBeanB.java | 5 + .../cause3/BeanA.java | 19 ++ .../spring/Cause1ContextWithJavaConfig.java | 16 ++ .../spring/Cause2ContextWithJavaConfig.java | 16 ++ .../spring/Cause3ContextWithJavaConfig.java | 16 ++ .../java/org/baeldung/persistence/Setup.java | 26 +++ .../core/ComponentInXmlUsingProperties.java | 30 +++ .../core/ComponentUsingProperties.java | 30 +++ .../spring/PropertiesWithJavaConfig.java | 25 ++ .../spring/PropertiesWithJavaConfigOther.java | 16 ++ .../spring/PropertiesWithXmlConfig.java | 16 ++ .../spring/PropertiesWithXmlConfigOne.java | 16 ++ .../spring/PropertiesWithXmlConfigTwo.java | 14 ++ .../baeldung/spring/config/CoreConfig.java | 15 ++ .../spring/config/MainWebAppInitializer.java | 41 ++++ .../org/baeldung/spring/config/MvcConfig.java | 39 ++++ .../spring/config/PersistenceConfig.java | 78 +++++++ spring-all/src/main/resources/bar.properties | 1 + .../main/resources/configForProperties.xml | 15 ++ .../main/resources/configForPropertiesOne.xml | 15 ++ .../main/resources/configForPropertiesTwo.xml | 11 + spring-all/src/main/resources/foo.properties | 1 + spring-all/src/main/resources/logback.xml | 22 ++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../src/main/webapp/WEB-INF/view/sample.jsp | 7 + .../src/main/webapp/WEB-INF/web_old.xml | 42 ++++ ...eanDefinitionExceptionIntegrationTest.java | 19 ++ ...eanDefinitionExceptionIntegrationTest.java | 19 ++ ...eanDefinitionExceptionIntegrationTest.java | 19 ++ .../PropertiesWithJavaIntegrationTest.java | 30 +++ ...ertiesWithMultipleXmlsIntegrationTest.java | 30 +++ .../PropertiesWithXmlIntegrationTest.java | 29 +++ spring-all/src/test/resources/.gitignore | 13 ++ 55 files changed, 1302 insertions(+) create mode 100644 spring-all/.classpath create mode 100644 spring-all/.gitignore create mode 100644 spring-all/.project create mode 100644 spring-all/.settings/.jsdtscope create mode 100644 spring-all/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-all/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-all/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-all/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-all/.settings/org.eclipse.wst.common.component create mode 100644 spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-all/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-all/.springBeans create mode 100644 spring-all/README.md create mode 100644 spring-all/pom.xml create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/persistence/Setup.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java create mode 100644 spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java create mode 100644 spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java create mode 100644 spring-all/src/main/resources/bar.properties create mode 100644 spring-all/src/main/resources/configForProperties.xml create mode 100644 spring-all/src/main/resources/configForPropertiesOne.xml create mode 100644 spring-all/src/main/resources/configForPropertiesTwo.xml create mode 100644 spring-all/src/main/resources/foo.properties create mode 100644 spring-all/src/main/resources/logback.xml create mode 100644 spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-all/src/main/webapp/WEB-INF/view/sample.jsp create mode 100644 spring-all/src/main/webapp/WEB-INF/web_old.xml create mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java create mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java create mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java create mode 100644 spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java create mode 100644 spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java create mode 100644 spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java create mode 100644 spring-all/src/test/resources/.gitignore diff --git a/spring-all/.classpath b/spring-all/.classpath new file mode 100644 index 000000000000..eed10d8a8b04 --- /dev/null +++ b/spring-all/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-all/.gitignore b/spring-all/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-all/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-all/.project b/spring-all/.project new file mode 100644 index 000000000000..4ae82dabf052 --- /dev/null +++ b/spring-all/.project @@ -0,0 +1,60 @@ + + + spring-all + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.zeroturnaround.eclipse.rebelXmlBuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + org.zeroturnaround.eclipse.jrebelNature + + diff --git a/spring-all/.settings/.jsdtscope b/spring-all/.settings/.jsdtscope new file mode 100644 index 000000000000..b46b9207a89e --- /dev/null +++ b/spring-all/.settings/.jsdtscope @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/spring-all/.settings/org.eclipse.jdt.core.prefs b/spring-all/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..723e5b12451a --- /dev/null +++ b/spring-all/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-all/.settings/org.eclipse.jdt.ui.prefs b/spring-all/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-all/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-all/.settings/org.eclipse.m2e.core.prefs b/spring-all/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-all/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-all/.settings/org.eclipse.m2e.wtp.prefs b/spring-all/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-all/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-all/.settings/org.eclipse.wst.common.component b/spring-all/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..847c6ff6987a --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..a67649dfa5ae --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-all/.settings/org.eclipse.wst.validation.prefs b/spring-all/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-all/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-all/.springBeans b/spring-all/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-all/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-all/README.md b/spring-all/README.md new file mode 100644 index 000000000000..0541922dc9ec --- /dev/null +++ b/spring-all/README.md @@ -0,0 +1,13 @@ +========= + +## Spring Exceptions Example Project + +This project is used to replicate Spring Exceptions only. + + +### Relevant articles: +- [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) +- [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) +- [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) +- [Spring NoSuchBeanDefinitionException](http://www.baeldung.com/spring-nosuchbeandefinitionexception) +- [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) - checkout the `org.baeldung.properties` package for all scenarios of properties injection and usage \ No newline at end of file diff --git a/spring-all/pom.xml b/spring-all/pom.xml new file mode 100644 index 000000000000..9dfb42a62309 --- /dev/null +++ b/spring-all/pom.xml @@ -0,0 +1,221 @@ + + 4.0.0 + org.baeldung + spring-all + 0.1-SNAPSHOT + + spring-all + war + + + + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + org.springframework + spring-orm + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + + + + org.hibernate + hibernate-core + ${hibernate.version} + + + org.javassist + javassist + ${javassist.version} + + + mysql + mysql-connector-java + ${mysql-connector-java.version} + runtime + + + + + + org.hibernate + hibernate-validator + ${hibernate-validator.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + ${jstl.version} + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-all + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-war-plugin + 2.3 + + false + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + 3.18.0-GA + 1.2 + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.2 + 2.15 + + + \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java new file mode 100644 index 000000000000..c664309426ff --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java @@ -0,0 +1,12 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause1; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class BeanA { + + @Autowired + private BeanB dependency; + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java new file mode 100644 index 000000000000..8a198422e801 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause1; + +public class BeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java new file mode 100644 index 000000000000..2b454bfabb7a --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java @@ -0,0 +1,12 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class BeanA { + + @Autowired + private IBeanB dependency; + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java new file mode 100644 index 000000000000..877f40066886 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java @@ -0,0 +1,8 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB1 implements IBeanB { + // +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java new file mode 100644 index 000000000000..6bf4160966e6 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java @@ -0,0 +1,8 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +import org.springframework.stereotype.Component; + +@Component +public class BeanB2 implements IBeanB { + // +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java new file mode 100644 index 000000000000..3e70126c1a94 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java @@ -0,0 +1,5 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause2; + +public interface IBeanB { + // +} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java new file mode 100644 index 000000000000..091d3f1aa82b --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.cause3; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +@Component +public class BeanA implements InitializingBean { + + @Autowired + private ApplicationContext context; + + @Override + public void afterPropertiesSet() { + context.getBean("someBeanName"); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java new file mode 100644 index 000000000000..5ba971baa9d6 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause1") +public class Cause1ContextWithJavaConfig { + + public Cause1ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java new file mode 100644 index 000000000000..9f4816ef7c00 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause2") +public class Cause2ContextWithJavaConfig { + + public Cause2ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java new file mode 100644 index 000000000000..a8d0fbe37bf0 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.ex.nosuchbeandefinitionexception.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause3") +public class Cause3ContextWithJavaConfig { + + public Cause3ContextWithJavaConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/persistence/Setup.java b/spring-all/src/main/java/org/baeldung/persistence/Setup.java new file mode 100644 index 000000000000..5cba4e70fba3 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/persistence/Setup.java @@ -0,0 +1,26 @@ +package org.baeldung.persistence; + +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.stereotype.Component; + +@Component +public class Setup implements ApplicationListener { + + private boolean setupDone; + + public Setup() { + super(); + } + + // + + @Override + public final void onApplicationEvent(final ContextRefreshedEvent event) { + if (!setupDone) { + System.out.println(); + setupDone = true; + } + } + +} diff --git a/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java b/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java new file mode 100644 index 000000000000..f695326cd6bd --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/core/ComponentInXmlUsingProperties.java @@ -0,0 +1,30 @@ +package org.baeldung.properties.core; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; + +public class ComponentInXmlUsingProperties implements InitializingBean { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + public ComponentInXmlUsingProperties(final String propertyValue) { + super(); + + System.out.println("Constructor Injection - Property Value resolted to: " + propertyValue); + } + + // + + @Override + public void afterPropertiesSet() throws Exception { + System.out.println("in afterPropertiesSet via @Value: " + injectedProperty); + System.out.println("in afterPropertiesSet Environment: " + env.getProperty("key.something")); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java b/spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java new file mode 100644 index 000000000000..7e082702fe7e --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/core/ComponentUsingProperties.java @@ -0,0 +1,30 @@ +package org.baeldung.properties.core; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +@Component +public class ComponentUsingProperties implements InitializingBean { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + public ComponentUsingProperties() { + super(); + } + + // + + @Override + public void afterPropertiesSet() throws Exception { + System.out.println("in afterPropertiesSet via @Value: " + injectedProperty); + System.out.println("in afterPropertiesSet Environment: " + env.getProperty("key.something")); + } + +} diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java new file mode 100644 index 000000000000..9b5d7ed047b5 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfig.java @@ -0,0 +1,25 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; + +@Configuration +@ComponentScan("org.baeldung.properties.core") +@PropertySource("classpath:foo.properties") +public class PropertiesWithJavaConfig { + + public PropertiesWithJavaConfig() { + super(); + } + + // beans + + @Bean + public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { + return new PropertySourcesPlaceholderConfigurer(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java new file mode 100644 index 000000000000..594ba0a09d52 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithJavaConfigOther.java @@ -0,0 +1,16 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +@Configuration +@PropertySource("classpath:bar.properties") +public class PropertiesWithJavaConfigOther { + + public PropertiesWithJavaConfigOther() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java new file mode 100644 index 000000000000..9ad7febcb0c1 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource("classpath:configForProperties.xml") +@ComponentScan("org.baeldung.core") +public class PropertiesWithXmlConfig { + + public PropertiesWithXmlConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java new file mode 100644 index 000000000000..9061cc10d48d --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigOne.java @@ -0,0 +1,16 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource("classpath:configForPropertiesOne.xml") +@ComponentScan("org.baeldung.core") +public class PropertiesWithXmlConfigOne { + + public PropertiesWithXmlConfigOne() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java new file mode 100644 index 000000000000..e4365cbc8b78 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/properties/spring/PropertiesWithXmlConfigTwo.java @@ -0,0 +1,14 @@ +package org.baeldung.properties.spring; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource("classpath:configForPropertiesTwo.xml") +public class PropertiesWithXmlConfigTwo { + + public PropertiesWithXmlConfigTwo() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java new file mode 100644 index 000000000000..ff1742351b23 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/config/CoreConfig.java @@ -0,0 +1,15 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@ComponentScan("org.baeldung.core") +public class CoreConfig extends WebMvcConfigurerAdapter { + + public CoreConfig() { + super(); + } + +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java new file mode 100644 index 000000000000..5ef83b8afd0b --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/config/MainWebAppInitializer.java @@ -0,0 +1,41 @@ +package org.baeldung.spring.config; + +import java.util.Set; + +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRegistration; + +import org.springframework.web.WebApplicationInitializer; +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.context.support.GenericWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +public class MainWebAppInitializer implements WebApplicationInitializer { + + /** + * Register and configure all Servlet container components necessary to power the web application. + */ + @Override + public void onStartup(final ServletContext sc) throws ServletException { + System.out.println("MainWebAppInitializer.onStartup()"); + + // Create the 'root' Spring application context + final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); + root.scan("org.baeldung.spring.config"); + // root.getEnvironment().setDefaultProfiles("embedded"); + + // Manages the lifecycle of the root application context + sc.addListener(new ContextLoaderListener(root)); + + // Handles requests into the application + final ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet(new GenericWebApplicationContext())); + appServlet.setLoadOnStartup(1); + final Set mappingConflicts = appServlet.addMapping("/"); + if (!mappingConflicts.isEmpty()) { + throw new IllegalStateException("'appServlet' could not be mapped to '/' due " + "to an existing mapping. This is a known issue under Tomcat versions " + "<= 7.0.14; see https://issues.apache.org/bugzilla/show_bug.cgi?id=51278"); + } + } + +} diff --git a/spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java new file mode 100644 index 000000000000..f87e400fce82 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/config/MvcConfig.java @@ -0,0 +1,39 @@ +package org.baeldung.spring.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class MvcConfig extends WebMvcConfigurerAdapter { + + public MvcConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/sample.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java new file mode 100644 index 000000000000..6a057fc0c741 --- /dev/null +++ b/spring-all/src/main/java/org/baeldung/spring/config/PersistenceConfig.java @@ -0,0 +1,78 @@ +package org.baeldung.spring.config; + +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.PropertySource; +import org.springframework.core.env.Environment; +import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.orm.hibernate4.HibernateTransactionManager; +import org.springframework.orm.hibernate4.LocalSessionFactoryBean; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.google.common.base.Preconditions; + +// @Configuration +@EnableTransactionManagement +@PropertySource({ "classpath:persistence-mysql.properties" }) +@ComponentScan({ "org.baeldung.persistence" }) +public class PersistenceConfig { + + @Autowired + private Environment env; + + public PersistenceConfig() { + super(); + } + + @Bean + public LocalSessionFactoryBean sessionFactory() { + final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean(); + sessionFactory.setDataSource(restDataSource()); + sessionFactory.setPackagesToScan(new String[] { "org.baeldung.spring.persistence.model" }); + sessionFactory.setHibernateProperties(hibernateProperties()); + + return sessionFactory; + } + + @Bean + public DataSource restDataSource() { + final DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName"))); + dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url"))); + dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user"))); + dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass"))); + + return dataSource; + } + + @Bean + public HibernateTransactionManager transactionManager() { + final HibernateTransactionManager txManager = new HibernateTransactionManager(); + txManager.setSessionFactory(sessionFactory().getObject()); + + return txManager; + } + + @Bean + public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { + return new PersistenceExceptionTranslationPostProcessor(); + } + + final Properties hibernateProperties() { + return new Properties() { + { + setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto")); + setProperty("hibernate.dialect", env.getProperty("hibernate.dialect")); + + // setProperty("hibernate.globally_quoted_identifiers", "true"); + // note: necessary in launchpad-storage, but causing problems here + } + }; + } +} \ No newline at end of file diff --git a/spring-all/src/main/resources/bar.properties b/spring-all/src/main/resources/bar.properties new file mode 100644 index 000000000000..1a41a49c4c3c --- /dev/null +++ b/spring-all/src/main/resources/bar.properties @@ -0,0 +1 @@ +key.something2=val2 \ No newline at end of file diff --git a/spring-all/src/main/resources/configForProperties.xml b/spring-all/src/main/resources/configForProperties.xml new file mode 100644 index 000000000000..20a40a319559 --- /dev/null +++ b/spring-all/src/main/resources/configForProperties.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/configForPropertiesOne.xml b/spring-all/src/main/resources/configForPropertiesOne.xml new file mode 100644 index 000000000000..ad9716fada18 --- /dev/null +++ b/spring-all/src/main/resources/configForPropertiesOne.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/configForPropertiesTwo.xml b/spring-all/src/main/resources/configForPropertiesTwo.xml new file mode 100644 index 000000000000..b9d5e86c95d9 --- /dev/null +++ b/spring-all/src/main/resources/configForPropertiesTwo.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/foo.properties b/spring-all/src/main/resources/foo.properties new file mode 100644 index 000000000000..7c47cd788002 --- /dev/null +++ b/spring-all/src/main/resources/foo.properties @@ -0,0 +1 @@ +key.something=val \ No newline at end of file diff --git a/spring-all/src/main/resources/logback.xml b/spring-all/src/main/resources/logback.xml new file mode 100644 index 000000000000..45c9697f776f --- /dev/null +++ b/spring-all/src/main/resources/logback.xml @@ -0,0 +1,22 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-all/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-all/src/main/webapp/WEB-INF/view/sample.jsp b/spring-all/src/main/webapp/WEB-INF/view/sample.jsp new file mode 100644 index 000000000000..7cc14b5dcddf --- /dev/null +++ b/spring-all/src/main/webapp/WEB-INF/view/sample.jsp @@ -0,0 +1,7 @@ + + + + +

This is the body of the sample view

+ + \ No newline at end of file diff --git a/spring-all/src/main/webapp/WEB-INF/web_old.xml b/spring-all/src/main/webapp/WEB-INF/web_old.xml new file mode 100644 index 000000000000..ba2bb591ed01 --- /dev/null +++ b/spring-all/src/main/webapp/WEB-INF/web_old.xml @@ -0,0 +1,42 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring.web.config + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + index.html + + + \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java new file mode 100644 index 000000000000..aed37a125a85 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception; + +import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause1ContextWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { Cause1ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause1NoSuchBeanDefinitionExceptionIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java new file mode 100644 index 000000000000..90d7317f4444 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception; + +import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause2ContextWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { Cause2ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause2NoSuchBeanDefinitionExceptionIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java new file mode 100644 index 000000000000..0e2123b7ffd7 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java @@ -0,0 +1,19 @@ +package org.baeldung.ex.nosuchbeandefinitionexception; + +import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause3ContextWithJavaConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { Cause3ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) +public class Cause3NoSuchBeanDefinitionExceptionIntegrationTest { + + @Test + public final void givenContextIsInitialized_thenNoException() { + // + } + +} diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java new file mode 100644 index 000000000000..d6c99502d7db --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithJavaIntegrationTest.java @@ -0,0 +1,30 @@ +package org.baeldung.properties.core; + +import org.baeldung.properties.spring.PropertiesWithJavaConfig; +import org.baeldung.properties.spring.PropertiesWithJavaConfigOther; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PropertiesWithJavaConfig.class, PropertiesWithJavaConfigOther.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesWithJavaIntegrationTest { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + @Test + public final void givenContextIsInitialized_thenNoException() { + System.out.println("in test via @Value: " + injectedProperty); + System.out.println("in test Environment: " + env.getProperty("key.something")); + } + +} diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java new file mode 100644 index 000000000000..9fc793fc1bf4 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithMultipleXmlsIntegrationTest.java @@ -0,0 +1,30 @@ +package org.baeldung.properties.core; + +import org.baeldung.properties.spring.PropertiesWithXmlConfigOne; +import org.baeldung.properties.spring.PropertiesWithXmlConfigTwo; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PropertiesWithXmlConfigOne.class, PropertiesWithXmlConfigTwo.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesWithMultipleXmlsIntegrationTest { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + @Test + public final void givenContextIsInitialized_thenNoException() { + System.out.println("in test via @Value: " + injectedProperty); + System.out.println("in test Environment: " + env.getProperty("key.something")); + } + +} diff --git a/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java new file mode 100644 index 000000000000..ff5eaab910b1 --- /dev/null +++ b/spring-all/src/test/java/org/baeldung/properties/core/PropertiesWithXmlIntegrationTest.java @@ -0,0 +1,29 @@ +package org.baeldung.properties.core; + +import org.baeldung.properties.spring.PropertiesWithXmlConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { PropertiesWithXmlConfig.class }, loader = AnnotationConfigContextLoader.class) +public class PropertiesWithXmlIntegrationTest { + + @Autowired + private Environment env; + + @Value("${key.something}") + private String injectedProperty; + + @Test + public final void givenContextIsInitialized_thenNoException() { + System.out.println("in test via @Value: " + injectedProperty); + System.out.println("in test Environment: " + env.getProperty("key.something")); + } + +} diff --git a/spring-all/src/test/resources/.gitignore b/spring-all/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-all/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From fd6fb9734331c49f4ff207396779d7fea3b8eb9f Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 14:49:01 +0300 Subject: [PATCH 176/206] spring exceptions now have their own project - these no longer belong --- .../cause1/BeanA.java | 12 ------------ .../cause1/BeanB.java | 5 ----- .../cause2/BeanA.java | 12 ------------ .../cause2/BeanB1.java | 8 -------- .../cause2/BeanB2.java | 8 -------- .../cause2/IBeanB.java | 5 ----- .../cause3/BeanA.java | 19 ------------------- .../spring/Cause1ContextWithJavaConfig.java | 16 ---------------- .../spring/Cause2ContextWithJavaConfig.java | 16 ---------------- .../spring/Cause3ContextWithJavaConfig.java | 16 ---------------- ...eanDefinitionExceptionIntegrationTest.java | 19 ------------------- ...eanDefinitionExceptionIntegrationTest.java | 19 ------------------- ...eanDefinitionExceptionIntegrationTest.java | 19 ------------------- 13 files changed, 174 deletions(-) delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java delete mode 100644 spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java delete mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java delete mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java delete mode 100644 spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java deleted file mode 100644 index c664309426ff..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanA.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause1; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class BeanA { - - @Autowired - private BeanB dependency; - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java deleted file mode 100644 index 8a198422e801..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause1/BeanB.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause1; - -public class BeanB { - // -} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java deleted file mode 100644 index 2b454bfabb7a..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanA.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause2; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -@Component -public class BeanA { - - @Autowired - private IBeanB dependency; - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java deleted file mode 100644 index 877f40066886..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB1.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause2; - -import org.springframework.stereotype.Component; - -@Component -public class BeanB1 implements IBeanB { - // -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java deleted file mode 100644 index 6bf4160966e6..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/BeanB2.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause2; - -import org.springframework.stereotype.Component; - -@Component -public class BeanB2 implements IBeanB { - // -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java deleted file mode 100644 index 3e70126c1a94..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause2/IBeanB.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause2; - -public interface IBeanB { - // -} diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java deleted file mode 100644 index 091d3f1aa82b..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/cause3/BeanA.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.cause3; - -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.stereotype.Component; - -@Component -public class BeanA implements InitializingBean { - - @Autowired - private ApplicationContext context; - - @Override - public void afterPropertiesSet() { - context.getBean("someBeanName"); - } - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java deleted file mode 100644 index 5ba971baa9d6..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause1ContextWithJavaConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.spring; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause1") -public class Cause1ContextWithJavaConfig { - - public Cause1ContextWithJavaConfig() { - super(); - } - - // beans - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java deleted file mode 100644 index 9f4816ef7c00..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause2ContextWithJavaConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.spring; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause2") -public class Cause2ContextWithJavaConfig { - - public Cause2ContextWithJavaConfig() { - super(); - } - - // beans - -} \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java b/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java deleted file mode 100644 index a8d0fbe37bf0..000000000000 --- a/spring-all/src/main/java/org/baeldung/ex/nosuchbeandefinitionexception/spring/Cause3ContextWithJavaConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception.spring; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("org.baeldung.ex.nosuchbeandefinitionexception.cause3") -public class Cause3ContextWithJavaConfig { - - public Cause3ContextWithJavaConfig() { - super(); - } - - // beans - -} \ No newline at end of file diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java deleted file mode 100644 index aed37a125a85..000000000000 --- a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause1NoSuchBeanDefinitionExceptionIntegrationTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception; - -import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause1ContextWithJavaConfig; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.AnnotationConfigContextLoader; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { Cause1ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) -public class Cause1NoSuchBeanDefinitionExceptionIntegrationTest { - - @Test - public final void givenContextIsInitialized_thenNoException() { - // - } - -} diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java deleted file mode 100644 index 90d7317f4444..000000000000 --- a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause2NoSuchBeanDefinitionExceptionIntegrationTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception; - -import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause2ContextWithJavaConfig; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.AnnotationConfigContextLoader; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { Cause2ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) -public class Cause2NoSuchBeanDefinitionExceptionIntegrationTest { - - @Test - public final void givenContextIsInitialized_thenNoException() { - // - } - -} diff --git a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java b/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java deleted file mode 100644 index 0e2123b7ffd7..000000000000 --- a/spring-all/src/test/java/org/baeldung/ex/nosuchbeandefinitionexception/Cause3NoSuchBeanDefinitionExceptionIntegrationTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.baeldung.ex.nosuchbeandefinitionexception; - -import org.baeldung.ex.nosuchbeandefinitionexception.spring.Cause3ContextWithJavaConfig; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.support.AnnotationConfigContextLoader; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { Cause3ContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class) -public class Cause3NoSuchBeanDefinitionExceptionIntegrationTest { - - @Test - public final void givenContextIsInitialized_thenNoException() { - // - } - -} From de476717ba5b701f0976e69afe3f703fcd7d54bd Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 14:49:58 +0300 Subject: [PATCH 177/206] doc work --- spring-all/README.md | 6 +----- spring-exceptions/README.md | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/spring-all/README.md b/spring-all/README.md index 0541922dc9ec..4a3bd2507704 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -1,13 +1,9 @@ ========= -## Spring Exceptions Example Project +## Spring General Example Project This project is used to replicate Spring Exceptions only. ### Relevant articles: -- [Spring BeanCreationException](http://www.baeldung.com/spring-beancreationexception) -- [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) -- [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) -- [Spring NoSuchBeanDefinitionException](http://www.baeldung.com/spring-nosuchbeandefinitionexception) - [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) - checkout the `org.baeldung.properties` package for all scenarios of properties injection and usage \ No newline at end of file diff --git a/spring-exceptions/README.md b/spring-exceptions/README.md index 0541922dc9ec..ab6a9643e912 100644 --- a/spring-exceptions/README.md +++ b/spring-exceptions/README.md @@ -10,4 +10,3 @@ This project is used to replicate Spring Exceptions only. - [Spring DataIntegrityViolationException](http://www.baeldung.com/spring-dataIntegrityviolationexception) - [Spring BeanDefinitionStoreException](http://www.baeldung.com/spring-beandefinitionstoreexception) - [Spring NoSuchBeanDefinitionException](http://www.baeldung.com/spring-nosuchbeandefinitionexception) -- [Properties with Spring](http://www.baeldung.com/2012/02/06/properties-with-spring) - checkout the `org.baeldung.properties` package for all scenarios of properties injection and usage \ No newline at end of file From 105ccb067acd3090b45e486dd256eef513f2fe62 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:01:13 +0300 Subject: [PATCH 178/206] clarification on the mvc vs rest projects --- spring-security-basic-auth/README.md | 4 ++ spring-security-custom/.project | 2 +- .../org.eclipse.wst.common.component | 6 +-- spring-security-custom/.springBeans | 2 +- spring-security-custom/pom.xml | 6 +-- .../java/org/baeldung/spring/MvcConfig.java | 40 ------------------- .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 --- .../src/main/webapp/WEB-INF/view/homepage.jsp | 8 ---- .../src/main/webapp/WEB-INF/view/login.jsp | 26 ------------ .../src/main/webapp/WEB-INF/web.xml | 9 ----- 10 files changed, 12 insertions(+), 97 deletions(-) delete mode 100644 spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java delete mode 100644 spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml delete mode 100644 spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp delete mode 100644 spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-basic-auth/README.md b/spring-security-basic-auth/README.md index 01be5f4b13b3..95e45ae519cb 100644 --- a/spring-security-basic-auth/README.md +++ b/spring-security-basic-auth/README.md @@ -6,3 +6,7 @@ ### Relevant Article: - [Spring Security - security none, filters none, access permitAll](http://www.baeldung.com/security-none-filters-none-access-permitAll) - [Spring Security Basic Authentication](http://www.baeldung.com/spring-security-basic-authentication) + + +### Notes +- the project includes both views as well as a REST layer \ No newline at end of file diff --git a/spring-security-custom/.project b/spring-security-custom/.project index 4299cd37284c..0e824c1bde6a 100644 --- a/spring-security-custom/.project +++ b/spring-security-custom/.project @@ -1,6 +1,6 @@ - spring-security-custom + spring-security-rest-custom diff --git a/spring-security-custom/.settings/org.eclipse.wst.common.component b/spring-security-custom/.settings/org.eclipse.wst.common.component index 6322536a9b64..3b22cb60bb1f 100644 --- a/spring-security-custom/.settings/org.eclipse.wst.common.component +++ b/spring-security-custom/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-custom/.springBeans b/spring-security-custom/.springBeans index d11fb034bdc0..a79097f40d30 100644 --- a/spring-security-custom/.springBeans +++ b/spring-security-custom/.springBeans @@ -1,7 +1,7 @@ 1 - + diff --git a/spring-security-custom/pom.xml b/spring-security-custom/pom.xml index ac00c65bbce7..1cf7dd867e84 100644 --- a/spring-security-custom/pom.xml +++ b/spring-security-custom/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-security-custom + spring-security-rest-custom 0.1-SNAPSHOT - spring-security-custom + spring-security-rest-custom war @@ -142,7 +142,7 @@ - spring-security-custom + spring-security-rest-custom src/main/resources diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java deleted file mode 100644 index c76b6175d695..000000000000 --- a/spring-security-custom/src/main/java/org/baeldung/spring/MvcConfig.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.baeldung.spring; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.ViewResolver; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; -import org.springframework.web.servlet.view.JstlView; - -@Configuration -@EnableWebMvc -public class MvcConfig extends WebMvcConfigurerAdapter { - - public MvcConfig() { - super(); - } - - // API - - @Override - public void addViewControllers(final ViewControllerRegistry registry) { - super.addViewControllers(registry); - - registry.addViewController("/login.html"); - registry.addViewController("/homepage.html"); - } - - @Bean - public ViewResolver viewResolver() { - final InternalResourceViewResolver bean = new InternalResourceViewResolver(); - - bean.setViewClass(JstlView.class); - bean.setPrefix("/WEB-INF/view/"); - bean.setSuffix(".jsp"); - - return bean; - } -} \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml deleted file mode 100644 index 5463820874c8..000000000000 --- a/spring-security-custom/src/main/webapp/WEB-INF/mvc-servlet.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp deleted file mode 100644 index a958bc0a0892..000000000000 --- a/spring-security-custom/src/main/webapp/WEB-INF/view/homepage.jsp +++ /dev/null @@ -1,8 +0,0 @@ -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - - - - -

This is the body of the sample view

- - \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp deleted file mode 100644 index 013ceccb4e4d..000000000000 --- a/spring-security-custom/src/main/webapp/WEB-INF/view/login.jsp +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

Login

- -
- - - - - - - - - - - - - -
User:
Password:
- -
- - - \ No newline at end of file diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-custom/src/main/webapp/WEB-INF/web.xml index e7fbf52aaeea..372688c8d87e 100644 --- a/spring-security-custom/src/main/webapp/WEB-INF/web.xml +++ b/spring-security-custom/src/main/webapp/WEB-INF/web.xml @@ -33,15 +33,6 @@ /api/* - - mvc - org.springframework.web.servlet.DispatcherServlet - 1 - - - mvc - /* - From 5489a6a15cc831268cd1fbf9b35233cf3a9bea66 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:02:12 +0300 Subject: [PATCH 179/206] clarification on the mvc vs rest projects --- .../.classpath | 0 .../org.eclipse.wst.jsdt.core.javascriptValidator.launch | 0 .../.gitignore | 0 {spring-security-custom => spring-security-rest-custom}/.project | 0 .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../.settings/org.eclipse.wst.common.component | 0 .../.settings/org.eclipse.wst.common.project.facet.core.xml | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.container | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.name | 0 .../.settings/org.eclipse.wst.validation.prefs | 0 .../.settings/org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 {spring-security-custom => spring-security-rest-custom}/README.md | 0 {spring-security-custom => spring-security-rest-custom}/pom.xml | 0 .../java/org/baeldung/security/CustomAuthenticationProvider.java | 0 .../security/MySavedRequestAwareAuthenticationSuccessHandler.java | 0 .../java/org/baeldung/security/RestAuthenticationEntryPoint.java | 0 .../src/main/java/org/baeldung/spring/SecSecurityConfig.java | 0 .../src/main/java/org/baeldung/spring/WebConfig.java | 0 .../src/main/java/org/baeldung/web/controller/FooController.java | 0 .../src/main/java/org/baeldung/web/dto/Foo.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/api-servlet.xml | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/resources/.gitignore | 0 30 files changed, 0 insertions(+), 0 deletions(-) rename {spring-security-custom => spring-security-rest-custom}/.classpath (100%) rename {spring-security-custom => spring-security-rest-custom}/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch (100%) rename {spring-security-custom => spring-security-rest-custom}/.gitignore (100%) rename {spring-security-custom => spring-security-rest-custom}/.project (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/.jsdtscope (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.wst.common.component (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-security-custom => spring-security-rest-custom}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-security-custom => spring-security-rest-custom}/.springBeans (100%) rename {spring-security-custom => spring-security-rest-custom}/README.md (100%) rename {spring-security-custom => spring-security-rest-custom}/pom.xml (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/spring/SecSecurityConfig.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/spring/WebConfig.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/web/controller/FooController.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/java/org/baeldung/web/dto/Foo.java (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/resources/logback.xml (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/resources/webSecurityConfig.xml (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/webapp/WEB-INF/api-servlet.xml (100%) rename {spring-security-custom => spring-security-rest-custom}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-security-custom => spring-security-rest-custom}/src/test/resources/.gitignore (100%) diff --git a/spring-security-custom/.classpath b/spring-security-rest-custom/.classpath similarity index 100% rename from spring-security-custom/.classpath rename to spring-security-rest-custom/.classpath diff --git a/spring-security-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-rest-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch similarity index 100% rename from spring-security-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch rename to spring-security-rest-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch diff --git a/spring-security-custom/.gitignore b/spring-security-rest-custom/.gitignore similarity index 100% rename from spring-security-custom/.gitignore rename to spring-security-rest-custom/.gitignore diff --git a/spring-security-custom/.project b/spring-security-rest-custom/.project similarity index 100% rename from spring-security-custom/.project rename to spring-security-rest-custom/.project diff --git a/spring-security-custom/.settings/.jsdtscope b/spring-security-rest-custom/.settings/.jsdtscope similarity index 100% rename from spring-security-custom/.settings/.jsdtscope rename to spring-security-rest-custom/.settings/.jsdtscope diff --git a/spring-security-custom/.settings/org.eclipse.jdt.core.prefs b/spring-security-rest-custom/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-security-custom/.settings/org.eclipse.jdt.core.prefs rename to spring-security-rest-custom/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-security-custom/.settings/org.eclipse.jdt.ui.prefs b/spring-security-rest-custom/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-security-custom/.settings/org.eclipse.jdt.ui.prefs rename to spring-security-rest-custom/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-security-custom/.settings/org.eclipse.m2e.core.prefs b/spring-security-rest-custom/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-security-custom/.settings/org.eclipse.m2e.core.prefs rename to spring-security-rest-custom/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-security-custom/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-rest-custom/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-security-custom/.settings/org.eclipse.m2e.wtp.prefs rename to spring-security-rest-custom/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-security-custom/.settings/org.eclipse.wst.common.component b/spring-security-rest-custom/.settings/org.eclipse.wst.common.component similarity index 100% rename from spring-security-custom/.settings/org.eclipse.wst.common.component rename to spring-security-rest-custom/.settings/org.eclipse.wst.common.component diff --git a/spring-security-custom/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-rest-custom/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-security-custom/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-security-rest-custom/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-rest-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-security-rest-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-rest-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-security-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-security-rest-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-security-custom/.settings/org.eclipse.wst.validation.prefs b/spring-security-rest-custom/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-security-custom/.settings/org.eclipse.wst.validation.prefs rename to spring-security-rest-custom/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-security-custom/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-rest-custom/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-security-custom/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-security-rest-custom/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-security-custom/.springBeans b/spring-security-rest-custom/.springBeans similarity index 100% rename from spring-security-custom/.springBeans rename to spring-security-rest-custom/.springBeans diff --git a/spring-security-custom/README.md b/spring-security-rest-custom/README.md similarity index 100% rename from spring-security-custom/README.md rename to spring-security-rest-custom/README.md diff --git a/spring-security-custom/pom.xml b/spring-security-rest-custom/pom.xml similarity index 100% rename from spring-security-custom/pom.xml rename to spring-security-rest-custom/pom.xml diff --git a/spring-security-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java b/spring-security-rest-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java rename to spring-security-rest-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java diff --git a/spring-security-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-rest-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java rename to spring-security-rest-custom/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java diff --git a/spring-security-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java b/spring-security-rest-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java rename to spring-security-rest-custom/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-rest-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java rename to spring-security-rest-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-rest-custom/src/main/java/org/baeldung/spring/WebConfig.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/spring/WebConfig.java rename to spring-security-rest-custom/src/main/java/org/baeldung/spring/WebConfig.java diff --git a/spring-security-custom/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/FooController.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/web/controller/FooController.java rename to spring-security-rest-custom/src/main/java/org/baeldung/web/controller/FooController.java diff --git a/spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/dto/Foo.java similarity index 100% rename from spring-security-custom/src/main/java/org/baeldung/web/dto/Foo.java rename to spring-security-rest-custom/src/main/java/org/baeldung/web/dto/Foo.java diff --git a/spring-security-custom/src/main/resources/logback.xml b/spring-security-rest-custom/src/main/resources/logback.xml similarity index 100% rename from spring-security-custom/src/main/resources/logback.xml rename to spring-security-rest-custom/src/main/resources/logback.xml diff --git a/spring-security-custom/src/main/resources/webSecurityConfig.xml b/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-custom/src/main/resources/webSecurityConfig.xml rename to spring-security-rest-custom/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml b/spring-security-rest-custom/src/main/webapp/WEB-INF/api-servlet.xml similarity index 100% rename from spring-security-custom/src/main/webapp/WEB-INF/api-servlet.xml rename to spring-security-rest-custom/src/main/webapp/WEB-INF/api-servlet.xml diff --git a/spring-security-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-rest-custom/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-custom/src/main/webapp/WEB-INF/web.xml rename to spring-security-rest-custom/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-custom/src/test/resources/.gitignore b/spring-security-rest-custom/src/test/resources/.gitignore similarity index 100% rename from spring-security-custom/src/test/resources/.gitignore rename to spring-security-rest-custom/src/test/resources/.gitignore From af0578e7bf22c2be3cceb1914eef01f303a7c962 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:05:57 +0300 Subject: [PATCH 180/206] mvc and rest clarification for projects --- spring-security-rest-custom/README.md | 1 - .../src/main/resources/webSecurityConfig.xml | 8 -------- 2 files changed, 9 deletions(-) diff --git a/spring-security-rest-custom/README.md b/spring-security-rest-custom/README.md index ecb07960eb0c..3ec8cf92c71a 100644 --- a/spring-security-rest-custom/README.md +++ b/spring-security-rest-custom/README.md @@ -4,5 +4,4 @@ ### Relevant Articles: -- [Spring REST Service Security](http://www.baeldung.com/2011/10/31/securing-a-restful-web-service-with-spring-security-3-1-part-3/) - [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) diff --git a/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml b/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml index 55974f664da8..3766574f346b 100644 --- a/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-custom/src/main/resources/webSecurityConfig.xml @@ -7,16 +7,8 @@ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - - - From 095329b1086caf44cedb7ad40925b06c0c14b2ff Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:12:58 +0300 Subject: [PATCH 181/206] eclipse cleanup, removing unnecessary natures, namging cleanup as well --- spring-security-digest-auth/.project | 19 +---- .../org.eclipse.wst.common.component | 6 +- spring-security-digest-auth/pom.xml | 6 +- .../persistence/service/FooService.java | 23 ------ .../baeldung/spring/PersistenceConfig.java | 14 ---- .../java/org/baeldung/spring/WebConfig.java | 17 ----- .../web/controller/FooController.java | 74 ------------------- .../org/baeldung/web/controller/LinkUtil.java | 30 -------- .../web/controller/ResourceCreated.java | 35 --------- ...esourceCreatedDiscoverabilityListener.java | 35 --------- .../controller/SingleResourceRetrieved.java | 29 -------- ...ourceRetrievedDiscoverabilityListener.java | 32 -------- .../web/controller/TestController.java | 28 ------- .../main/java/org/baeldung/web/dto/Foo.java | 11 --- .../src/main/resources/webSecurityConfig.xml | 48 ++++++------ spring-security-login/.project | 19 ++--- spring-security-rest-custom/.project | 19 ++--- spring-security-rest-full/.project | 19 ++--- spring-security-rest/.project | 19 ++--- 19 files changed, 53 insertions(+), 430 deletions(-) delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java delete mode 100644 spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java diff --git a/spring-security-digest-auth/.project b/spring-security-digest-auth/.project index a5c72c83aeb6..f387b771fcc3 100644 --- a/spring-security-digest-auth/.project +++ b/spring-security-digest-auth/.project @@ -1,21 +1,10 @@ - spring-security-digest-auth + spring-security-mvc-digest-auth - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder @@ -31,11 +20,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -54,6 +38,5 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.common.component b/spring-security-digest-auth/.settings/org.eclipse.wst.common.component index 6333967c73a3..0d189e36cd1e 100644 --- a/spring-security-digest-auth/.settings/org.eclipse.wst.common.component +++ b/spring-security-digest-auth/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-digest-auth/pom.xml b/spring-security-digest-auth/pom.xml index 73d1ced5970b..760d8156f384 100644 --- a/spring-security-digest-auth/pom.xml +++ b/spring-security-digest-auth/pom.xml @@ -2,10 +2,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.baeldung - spring-security-digest-auth + spring-security-mvc-digest-auth 0.1-SNAPSHOT - spring-security-digest-auth + spring-security-mvc-digest-auth war @@ -128,7 +128,7 @@ - spring-security-digest-auth + spring-security-mvc-digest-auth src/main/resources diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java b/spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java deleted file mode 100644 index 02db7a733a6b..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/persistence/service/FooService.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.baeldung.persistence.service; - -import org.baeldung.web.dto.Foo; -import org.springframework.stereotype.Service; - -@Service -public class FooService { - - public FooService() { - super(); - } - - // API - - public Foo getById(final Long id) { - return null; - } - - public Long create(final Foo resource) { - return null; - } - -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java deleted file mode 100644 index 4ea0053f4845..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/spring/PersistenceConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.baeldung.spring; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("org.baeldung.persistence") -public class PersistenceConfig { - - public PersistenceConfig() { - super(); - } - -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java deleted file mode 100644 index fa6f5f6d5626..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/spring/WebConfig.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.baeldung.spring; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; - -@Configuration -@ComponentScan("org.baeldung.web") -public class WebConfig extends WebMvcConfigurerAdapter { - - public WebConfig() { - super(); - } - - // API - -} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java deleted file mode 100644 index daa797ee368e..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/FooController.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.baeldung.web.controller; - -import java.net.URI; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.baeldung.persistence.service.FooService; -import org.baeldung.web.dto.Foo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.http.HttpStatus; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.util.UriComponentsBuilder; -import org.springframework.web.util.UriTemplate; - -import com.google.common.base.Preconditions; - -@Controller -@RequestMapping(value = "/foo") -public class FooController { - - @Autowired - private ApplicationEventPublisher eventPublisher; - - @Autowired - private FooService service; - - public FooController() { - super(); - } - - // API - - @RequestMapping(value = "/{id}", method = RequestMethod.GET) - @ResponseBody - public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { - return new Foo(); - } - - @RequestMapping(value = "admin/foo/{id}", method = RequestMethod.GET) - @ResponseBody - public Foo get(@PathVariable("id") final Long id, final HttpServletRequest request, final HttpServletResponse response) { - final Foo resourceById = Preconditions.checkNotNull(service.getById(id)); - - eventPublisher.publishEvent(new SingleResourceRetrieved(this, request, response)); - return resourceById; - } - - @RequestMapping(value = "admin/foo", method = RequestMethod.POST) - @ResponseStatus(HttpStatus.CREATED) - public void create(@RequestBody final Foo resource, final HttpServletRequest request, final HttpServletResponse response) { - Preconditions.checkNotNull(resource); - final Long idOfCreatedResource = service.create(resource); - - eventPublisher.publishEvent(new ResourceCreated(this, request, response, idOfCreatedResource)); - } - - @RequestMapping(value = "admin", method = RequestMethod.GET) - @ResponseStatus(value = HttpStatus.NO_CONTENT) - public void adminRoot(final HttpServletRequest request, final HttpServletResponse response) { - final String rootUri = request.getRequestURL().toString(); - - final URI fooUri = new UriTemplate("{rootUri}/{resource}").expand(rootUri, "foo"); - final String linkToFoo = LinkUtil.createLinkHeader(fooUri.toASCIIString(), "collection"); - response.addHeader("Link", linkToFoo); - } -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java deleted file mode 100644 index a41ebb5a5cdd..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/LinkUtil.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.baeldung.web.controller; - -import javax.servlet.http.HttpServletResponse; - -/** - * Provides some constants and utility methods to build a Link Header to be stored in the {@link HttpServletResponse} object - */ -public final class LinkUtil { - - private LinkUtil() { - throw new AssertionError(); - } - - // - - /** - * Creates a Link Header to be stored in the {@link HttpServletResponse} to provide Discoverability features to the user - * - * @param uri - * the base uri - * @param rel - * the relative path - * - * @return the complete url - */ - public static String createLinkHeader(final String uri, final String rel) { - return "<" + uri + ">; rel=\"" + rel + "\""; - } - -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java deleted file mode 100644 index a67788810161..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreated.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.baeldung.web.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationEvent; - -public class ResourceCreated extends ApplicationEvent { - private final HttpServletResponse response; - private final HttpServletRequest request; - private final long idOfNewResource; - - public ResourceCreated(final Object source, final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { - super(source); - - this.request = request; - this.response = response; - this.idOfNewResource = idOfNewResource; - } - - // API - - public HttpServletResponse getResponse() { - return response; - } - - public HttpServletRequest getRequest() { - return request; - } - - public long getIdOfNewResource() { - return idOfNewResource; - } - -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java deleted file mode 100644 index 8d19ef82fc63..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/ResourceCreatedDiscoverabilityListener.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.baeldung.web.controller; - -import java.net.URI; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; -import org.springframework.web.util.UriTemplate; - -import com.google.common.base.Preconditions; -import com.google.common.net.HttpHeaders; - -@Component -class ResourceCreatedDiscoverabilityListener implements ApplicationListener { - - @Override - public void onApplicationEvent(final ResourceCreated resourceCreatedEvent) { - Preconditions.checkNotNull(resourceCreatedEvent); - - final HttpServletRequest request = resourceCreatedEvent.getRequest(); - final HttpServletResponse response = resourceCreatedEvent.getResponse(); - final long idOfNewResource = resourceCreatedEvent.getIdOfNewResource(); - - addLinkHeaderOnResourceCreation(request, response, idOfNewResource); - } - - void addLinkHeaderOnResourceCreation(final HttpServletRequest request, final HttpServletResponse response, final long idOfNewResource) { - final String requestUrl = request.getRequestURL().toString(); - final URI uri = new UriTemplate("{requestUrl}/{idOfNewResource}").expand(requestUrl, idOfNewResource); - response.setHeader(HttpHeaders.LOCATION, uri.toASCIIString()); - } - -} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java deleted file mode 100644 index 3de791810549..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrieved.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.baeldung.web.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationEvent; - -public class SingleResourceRetrieved extends ApplicationEvent { - private final HttpServletResponse response; - private final HttpServletRequest request; - - public SingleResourceRetrieved(final Object source, final HttpServletRequest request, final HttpServletResponse response) { - super(source); - - this.request = request; - this.response = response; - } - - // API - - public HttpServletResponse getResponse() { - return response; - } - - public HttpServletRequest getRequest() { - return request; - } - -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java deleted file mode 100644 index 45cd7c4d131a..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/SingleResourceRetrievedDiscoverabilityListener.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.baeldung.web.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -import com.google.common.base.Preconditions; - -@Component -class SingleResourceRetrievedDiscoverabilityListener implements ApplicationListener { - - @Override - public void onApplicationEvent(final SingleResourceRetrieved resourceRetrievedEvent) { - Preconditions.checkNotNull(resourceRetrievedEvent); - - final HttpServletRequest request = resourceRetrievedEvent.getRequest(); - final HttpServletResponse response = resourceRetrievedEvent.getResponse(); - addLinkHeaderOnSingleResourceRetrieval(request, response); - } - - void addLinkHeaderOnSingleResourceRetrieval(final HttpServletRequest request, final HttpServletResponse response) { - final StringBuffer requestURL = request.getRequestURL(); - final int positionOfLastSlash = requestURL.lastIndexOf("/"); - final String uriForResourceCreation = requestURL.substring(0, positionOfLastSlash); - - final String linkHeaderValue = LinkUtil.createLinkHeader(uriForResourceCreation, "collection"); - response.addHeader("Link", linkHeaderValue); - } - -} \ No newline at end of file diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java deleted file mode 100644 index f68cfb2eb7dc..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/controller/TestController.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.baeldung.web.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class TestController { - - public TestController() { - super(); - } - - // API - - @RequestMapping("/permitAll") - @ResponseBody - public String permitAll() { - return "Permit All"; - } - - @RequestMapping("/securityNone") - @ResponseBody - public String securityNone() { - return "Security None"; - } - -} diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java deleted file mode 100644 index 352045989daa..000000000000 --- a/spring-security-digest-auth/src/main/java/org/baeldung/web/dto/Foo.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.baeldung.web.dto; - -import java.io.Serializable; - -public class Foo implements Serializable { - - public Foo() { - super(); - } - -} diff --git a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml index 1d5703cb2614..dfd0b853713d 100644 --- a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml +++ b/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml @@ -1,35 +1,31 @@ - - - - - - - - - + + + + + + + + - - - + + + - - + + - - - - - - - + + + + + + + \ No newline at end of file diff --git a/spring-security-login/.project b/spring-security-login/.project index 49eecbd6a380..72e28ae1298c 100644 --- a/spring-security-login/.project +++ b/spring-security-login/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder @@ -32,8 +21,13 @@ - org.zeroturnaround.eclipse.rebelXmlBuilder + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + LaunchConfigHandle + <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch + @@ -54,6 +48,5 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.zeroturnaround.eclipse.jrebelNature
diff --git a/spring-security-rest-custom/.project b/spring-security-rest-custom/.project index 0e824c1bde6a..4fe382b78e90 100644 --- a/spring-security-rest-custom/.project +++ b/spring-security-rest-custom/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder @@ -32,8 +21,13 @@ - org.zeroturnaround.eclipse.rebelXmlBuilder + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + LaunchConfigHandle + <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch + @@ -54,6 +48,5 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.zeroturnaround.eclipse.jrebelNature
diff --git a/spring-security-rest-full/.project b/spring-security-rest-full/.project index e914491b964d..4436c6f0abd3 100644 --- a/spring-security-rest-full/.project +++ b/spring-security-rest-full/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder @@ -32,8 +21,13 @@ - org.zeroturnaround.eclipse.rebelXmlBuilder + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + LaunchConfigHandle + <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch + @@ -54,6 +48,5 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-security-rest/.project b/spring-security-rest/.project index 67be91451e64..9f44238b3616 100644 --- a/spring-security-rest/.project +++ b/spring-security-rest/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder @@ -32,8 +21,13 @@ - org.zeroturnaround.eclipse.rebelXmlBuilder + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + LaunchConfigHandle + <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch + @@ -54,6 +48,5 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.zeroturnaround.eclipse.jrebelNature From e98c28cb906e6650b85254649dcafb0bbd3e0df9 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:14:32 +0300 Subject: [PATCH 182/206] eclipse cleanup --- spring-all/.project | 6 ------ spring-exceptions/.project | 6 ------ spring-hibernate3/.project | 6 ------ spring-hibernate4/.project | 6 ------ spring-jpa/.project | 6 ------ spring-mvc-java/.project | 6 ------ spring-mvc-xml/.project | 6 ------ spring-mvc/.project | 6 ------ spring-security-basic-auth/.project | 6 ------ .../org.zeroturnaround.eclipse.rebelXmlBuilder.launch | 7 +++++++ .../org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch | 7 +++++++ .../org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch | 7 +++++++ .../org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch | 7 +++++++ 13 files changed, 28 insertions(+), 54 deletions(-) create mode 100644 spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch create mode 100644 spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch create mode 100644 spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch create mode 100644 spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch diff --git a/spring-all/.project b/spring-all/.project index 4ae82dabf052..e7f6943aaf99 100644 --- a/spring-all/.project +++ b/spring-all/.project @@ -31,11 +31,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -55,6 +50,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-exceptions/.project b/spring-exceptions/.project index 8c9eba80050f..df494e2f1492 100644 --- a/spring-exceptions/.project +++ b/spring-exceptions/.project @@ -31,11 +31,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -55,6 +50,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-hibernate3/.project b/spring-hibernate3/.project index 5725f008def9..1184fb6b23b1 100644 --- a/spring-hibernate3/.project +++ b/spring-hibernate3/.project @@ -20,11 +20,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -44,6 +39,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-hibernate4/.project b/spring-hibernate4/.project index 40591b21b2fc..b68719164667 100644 --- a/spring-hibernate4/.project +++ b/spring-hibernate4/.project @@ -20,11 +20,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -44,6 +39,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-jpa/.project b/spring-jpa/.project index 3fe887cb4569..235ae29ecfc3 100644 --- a/spring-jpa/.project +++ b/spring-jpa/.project @@ -20,11 +20,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -44,6 +39,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-mvc-java/.project b/spring-mvc-java/.project index 46209afeadc7..c8c351837639 100644 --- a/spring-mvc-java/.project +++ b/spring-mvc-java/.project @@ -31,11 +31,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -55,6 +50,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-mvc-xml/.project b/spring-mvc-xml/.project index 6cdb4e0e5194..65f553ae4910 100644 --- a/spring-mvc-xml/.project +++ b/spring-mvc-xml/.project @@ -31,11 +31,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -55,6 +50,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-mvc/.project b/spring-mvc/.project index 90b8ccd78f8f..bd728edc359f 100644 --- a/spring-mvc/.project +++ b/spring-mvc/.project @@ -31,11 +31,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -55,6 +50,5 @@ org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature org.eclipse.wst.jsdt.core.jsNature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-security-basic-auth/.project b/spring-security-basic-auth/.project index f2aa3ca83eb0..7426b8140db3 100644 --- a/spring-security-basic-auth/.project +++ b/spring-security-basic-auth/.project @@ -31,11 +31,6 @@ - - org.zeroturnaround.eclipse.rebelXmlBuilder - - - org.springframework.ide.eclipse.core.springbuilder @@ -54,6 +49,5 @@ org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature - org.zeroturnaround.eclipse.jrebelNature diff --git a/spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch b/spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch new file mode 100644 index 000000000000..2dc234468353 --- /dev/null +++ b/spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch b/spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch new file mode 100644 index 000000000000..2dc234468353 --- /dev/null +++ b/spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch b/spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch new file mode 100644 index 000000000000..2dc234468353 --- /dev/null +++ b/spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch b/spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch new file mode 100644 index 000000000000..2dc234468353 --- /dev/null +++ b/spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch @@ -0,0 +1,7 @@ + + + + + + + From 402db7c1d3703bb72963c0033846a488b958c171 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:16:26 +0300 Subject: [PATCH 183/206] finishing eclipse cleanup --- spring-all/.project | 11 ----------- spring-exceptions/.project | 11 ----------- spring-mvc-java/.project | 11 ----------- spring-mvc-xml/.project | 11 ----------- spring-mvc/.project | 11 ----------- spring-security-basic-auth/.project | 11 ----------- .../org.zeroturnaround.eclipse.rebelXmlBuilder.launch | 7 ------- spring-security-login/.project | 10 ---------- ....zeroturnaround.eclipse.rebelXmlBuilder (2).launch | 7 ------- spring-security-rest-custom/.project | 10 ---------- ....zeroturnaround.eclipse.rebelXmlBuilder (3).launch | 7 ------- spring-security-rest-full/.project | 10 ---------- ....zeroturnaround.eclipse.rebelXmlBuilder (1).launch | 7 ------- spring-security-rest/.project | 10 ---------- 14 files changed, 134 deletions(-) delete mode 100644 spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch delete mode 100644 spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch delete mode 100644 spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch delete mode 100644 spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch diff --git a/spring-all/.project b/spring-all/.project index e7f6943aaf99..ce1efa888003 100644 --- a/spring-all/.project +++ b/spring-all/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-exceptions/.project b/spring-exceptions/.project index df494e2f1492..810b4a928626 100644 --- a/spring-exceptions/.project +++ b/spring-exceptions/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-mvc-java/.project b/spring-mvc-java/.project index c8c351837639..21aa8efe0fc5 100644 --- a/spring-mvc-java/.project +++ b/spring-mvc-java/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-mvc-xml/.project b/spring-mvc-xml/.project index 65f553ae4910..de41bcaace08 100644 --- a/spring-mvc-xml/.project +++ b/spring-mvc-xml/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-mvc/.project b/spring-mvc/.project index bd728edc359f..47bfed4d2afc 100644 --- a/spring-mvc/.project +++ b/spring-mvc/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-security-basic-auth/.project b/spring-security-basic-auth/.project index 7426b8140db3..74e667d477a1 100644 --- a/spring-security-basic-auth/.project +++ b/spring-security-basic-auth/.project @@ -5,17 +5,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch - - - - org.eclipse.jdt.core.javabuilder diff --git a/spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch b/spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch deleted file mode 100644 index 2dc234468353..000000000000 --- a/spring-security-login/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-security-login/.project b/spring-security-login/.project index 72e28ae1298c..e403abcddab9 100644 --- a/spring-security-login/.project +++ b/spring-security-login/.project @@ -20,16 +20,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder.launch - - - org.springframework.ide.eclipse.core.springbuilder diff --git a/spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch b/spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch deleted file mode 100644 index 2dc234468353..000000000000 --- a/spring-security-rest-custom/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-security-rest-custom/.project b/spring-security-rest-custom/.project index 4fe382b78e90..801347984eaf 100644 --- a/spring-security-rest-custom/.project +++ b/spring-security-rest-custom/.project @@ -20,16 +20,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (2).launch - - - org.springframework.ide.eclipse.core.springbuilder diff --git a/spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch b/spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch deleted file mode 100644 index 2dc234468353..000000000000 --- a/spring-security-rest-full/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-security-rest-full/.project b/spring-security-rest-full/.project index 4436c6f0abd3..89da95b5283f 100644 --- a/spring-security-rest-full/.project +++ b/spring-security-rest-full/.project @@ -20,16 +20,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (3).launch - - - org.springframework.ide.eclipse.core.springbuilder diff --git a/spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch b/spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch deleted file mode 100644 index 2dc234468353..000000000000 --- a/spring-security-rest/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-security-rest/.project b/spring-security-rest/.project index 9f44238b3616..f07f8b2e06b0 100644 --- a/spring-security-rest/.project +++ b/spring-security-rest/.project @@ -20,16 +20,6 @@ - - org.eclipse.ui.externaltools.ExternalToolBuilder - full,incremental, - - - LaunchConfigHandle - <project>/.externalToolBuilders/org.zeroturnaround.eclipse.rebelXmlBuilder (1).launch - - - org.springframework.ide.eclipse.core.springbuilder From 11e6c4ad3d46fd1a7843173e6ed11ff832970c37 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:19:31 +0300 Subject: [PATCH 184/206] project rename --- .../.classpath | 0 .../org.eclipse.wst.jsdt.core.javascriptValidator.launch | 0 .../.gitignore | 0 .../.project | 0 .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../.settings/org.eclipse.wst.common.component | 0 .../.settings/org.eclipse.wst.common.project.facet.core.xml | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.container | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.name | 0 .../.settings/org.eclipse.wst.validation.prefs | 0 .../.settings/org.eclipse.wst.ws.service.policy.prefs | 0 .../.springBeans | 0 .../README.md | 0 .../pom.xml | 0 .../baeldung/security/basic/MyBasicAuthenticationEntryPoint.java | 0 .../src/main/java/org/baeldung/spring/MvcConfig.java | 0 .../src/main/java/org/baeldung/spring/SecSecurityConfig.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/resources/.gitignore | 0 27 files changed, 0 insertions(+), 0 deletions(-) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.classpath (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.gitignore (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.project (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/.jsdtscope (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.wst.common.component (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/.springBeans (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/README.md (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/pom.xml (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/java/org/baeldung/spring/MvcConfig.java (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/java/org/baeldung/spring/SecSecurityConfig.java (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/resources/logback.xml (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/resources/webSecurityConfig.xml (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-security-digest-auth => spring-security-mvc-digest-auth}/src/test/resources/.gitignore (100%) diff --git a/spring-security-digest-auth/.classpath b/spring-security-mvc-digest-auth/.classpath similarity index 100% rename from spring-security-digest-auth/.classpath rename to spring-security-mvc-digest-auth/.classpath diff --git a/spring-security-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-mvc-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch similarity index 100% rename from spring-security-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch rename to spring-security-mvc-digest-auth/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch diff --git a/spring-security-digest-auth/.gitignore b/spring-security-mvc-digest-auth/.gitignore similarity index 100% rename from spring-security-digest-auth/.gitignore rename to spring-security-mvc-digest-auth/.gitignore diff --git a/spring-security-digest-auth/.project b/spring-security-mvc-digest-auth/.project similarity index 100% rename from spring-security-digest-auth/.project rename to spring-security-mvc-digest-auth/.project diff --git a/spring-security-digest-auth/.settings/.jsdtscope b/spring-security-mvc-digest-auth/.settings/.jsdtscope similarity index 100% rename from spring-security-digest-auth/.settings/.jsdtscope rename to spring-security-mvc-digest-auth/.settings/.jsdtscope diff --git a/spring-security-digest-auth/.settings/org.eclipse.jdt.core.prefs b/spring-security-mvc-digest-auth/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.jdt.core.prefs rename to spring-security-mvc-digest-auth/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-security-digest-auth/.settings/org.eclipse.jdt.ui.prefs b/spring-security-mvc-digest-auth/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.jdt.ui.prefs rename to spring-security-mvc-digest-auth/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-security-digest-auth/.settings/org.eclipse.m2e.core.prefs b/spring-security-mvc-digest-auth/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.m2e.core.prefs rename to spring-security-mvc-digest-auth/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-security-digest-auth/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-mvc-digest-auth/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.m2e.wtp.prefs rename to spring-security-mvc-digest-auth/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.common.component b/spring-security-mvc-digest-auth/.settings/org.eclipse.wst.common.component similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.wst.common.component rename to spring-security-mvc-digest-auth/.settings/org.eclipse.wst.common.component diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-mvc-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-security-mvc-digest-auth/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-mvc-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-security-mvc-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-mvc-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-security-mvc-digest-auth/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.validation.prefs b/spring-security-mvc-digest-auth/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.wst.validation.prefs rename to spring-security-mvc-digest-auth/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-security-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-mvc-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-security-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-security-mvc-digest-auth/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-security-digest-auth/.springBeans b/spring-security-mvc-digest-auth/.springBeans similarity index 100% rename from spring-security-digest-auth/.springBeans rename to spring-security-mvc-digest-auth/.springBeans diff --git a/spring-security-digest-auth/README.md b/spring-security-mvc-digest-auth/README.md similarity index 100% rename from spring-security-digest-auth/README.md rename to spring-security-mvc-digest-auth/README.md diff --git a/spring-security-digest-auth/pom.xml b/spring-security-mvc-digest-auth/pom.xml similarity index 100% rename from spring-security-digest-auth/pom.xml rename to spring-security-mvc-digest-auth/pom.xml diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java b/spring-security-mvc-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java similarity index 100% rename from spring-security-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java rename to spring-security-mvc-digest-auth/src/main/java/org/baeldung/security/basic/MyBasicAuthenticationEntryPoint.java diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-mvc-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java rename to spring-security-mvc-digest-auth/src/main/java/org/baeldung/spring/MvcConfig.java diff --git a/spring-security-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-mvc-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java rename to spring-security-mvc-digest-auth/src/main/java/org/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-digest-auth/src/main/resources/logback.xml b/spring-security-mvc-digest-auth/src/main/resources/logback.xml similarity index 100% rename from spring-security-digest-auth/src/main/resources/logback.xml rename to spring-security-mvc-digest-auth/src/main/resources/logback.xml diff --git a/spring-security-digest-auth/src/main/resources/webSecurityConfig.xml b/spring-security-mvc-digest-auth/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-digest-auth/src/main/resources/webSecurityConfig.xml rename to spring-security-mvc-digest-auth/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-digest-auth/src/main/webapp/WEB-INF/web.xml b/spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-digest-auth/src/main/webapp/WEB-INF/web.xml rename to spring-security-mvc-digest-auth/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-digest-auth/src/test/resources/.gitignore b/spring-security-mvc-digest-auth/src/test/resources/.gitignore similarity index 100% rename from spring-security-digest-auth/src/test/resources/.gitignore rename to spring-security-mvc-digest-auth/src/test/resources/.gitignore From b546b25939ef4521550c46d2db45c051a58ac563 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:21:15 +0300 Subject: [PATCH 185/206] project cleanup --- spring-security-login/.project | 2 +- .../.settings/org.eclipse.wst.common.component | 6 +++--- spring-security-login/pom.xml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-security-login/.project b/spring-security-login/.project index e403abcddab9..d52a48244aef 100644 --- a/spring-security-login/.project +++ b/spring-security-login/.project @@ -1,6 +1,6 @@ - spring-security-login + spring-security-mvc-login diff --git a/spring-security-login/.settings/org.eclipse.wst.common.component b/spring-security-login/.settings/org.eclipse.wst.common.component index c42e29f80edc..8b704170f815 100644 --- a/spring-security-login/.settings/org.eclipse.wst.common.component +++ b/spring-security-login/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-login/pom.xml b/spring-security-login/pom.xml index 4acf8ce02acd..73968b027385 100644 --- a/spring-security-login/pom.xml +++ b/spring-security-login/pom.xml @@ -1,10 +1,10 @@ 4.0.0 org.baeldung - spring-security-login + spring-security-mvc-login 0.1-SNAPSHOT - spring-security-login + spring-security-mvc-login war @@ -124,7 +124,7 @@ - spring-security-login + spring-security-mvc-login src/main/resources From 1fd1a2e0bf85b77fc496fabfa77cc8ef73c07cf5 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:22:01 +0300 Subject: [PATCH 186/206] project structure cleanup --- {spring-security-login => spring-security-mvc-login}/.classpath | 0 .../org.eclipse.wst.jsdt.core.javascriptValidator.launch | 0 {spring-security-login => spring-security-mvc-login}/.gitignore | 0 {spring-security-login => spring-security-mvc-login}/.project | 0 .../.settings/.jsdtscope | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.jdt.ui.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../.settings/org.eclipse.m2e.wtp.prefs | 0 .../.settings/org.eclipse.wst.common.component | 0 .../.settings/org.eclipse.wst.common.project.facet.core.xml | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.container | 0 .../.settings/org.eclipse.wst.jsdt.ui.superType.name | 0 .../.settings/org.eclipse.wst.validation.prefs | 0 .../.settings/org.eclipse.wst.ws.service.policy.prefs | 0 {spring-security-login => spring-security-mvc-login}/.springBeans | 0 {spring-security-login => spring-security-mvc-login}/README.md | 0 {spring-security-login => spring-security-mvc-login}/pom.xml | 0 .../java/org/baeldung/security/CustomLogoutSuccessHandler.java | 0 .../src/main/java/org/baeldung/spring/MvcConfig.java | 0 .../src/main/java/org/baeldung/spring/SecSecurityConfig.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/webSecurityConfig.xml | 0 .../src/main/webapp/WEB-INF/mvc-servlet.xml | 0 .../src/main/webapp/WEB-INF/view/anonymous.jsp | 0 .../src/main/webapp/WEB-INF/view/homepage.jsp | 0 .../src/main/webapp/WEB-INF/view/login.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/test/resources/.gitignore | 0 29 files changed, 0 insertions(+), 0 deletions(-) rename {spring-security-login => spring-security-mvc-login}/.classpath (100%) rename {spring-security-login => spring-security-mvc-login}/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch (100%) rename {spring-security-login => spring-security-mvc-login}/.gitignore (100%) rename {spring-security-login => spring-security-mvc-login}/.project (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/.jsdtscope (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.jdt.core.prefs (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.jdt.ui.prefs (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.m2e.core.prefs (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.m2e.wtp.prefs (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.wst.common.component (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.wst.common.project.facet.core.xml (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.wst.jsdt.ui.superType.container (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.wst.jsdt.ui.superType.name (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.wst.validation.prefs (100%) rename {spring-security-login => spring-security-mvc-login}/.settings/org.eclipse.wst.ws.service.policy.prefs (100%) rename {spring-security-login => spring-security-mvc-login}/.springBeans (100%) rename {spring-security-login => spring-security-mvc-login}/README.md (100%) rename {spring-security-login => spring-security-mvc-login}/pom.xml (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/java/org/baeldung/spring/MvcConfig.java (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/java/org/baeldung/spring/SecSecurityConfig.java (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/resources/logback.xml (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/resources/webSecurityConfig.xml (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/webapp/WEB-INF/mvc-servlet.xml (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/webapp/WEB-INF/view/anonymous.jsp (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/webapp/WEB-INF/view/homepage.jsp (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/webapp/WEB-INF/view/login.jsp (100%) rename {spring-security-login => spring-security-mvc-login}/src/main/webapp/WEB-INF/web.xml (100%) rename {spring-security-login => spring-security-mvc-login}/src/test/resources/.gitignore (100%) diff --git a/spring-security-login/.classpath b/spring-security-mvc-login/.classpath similarity index 100% rename from spring-security-login/.classpath rename to spring-security-mvc-login/.classpath diff --git a/spring-security-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-mvc-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch similarity index 100% rename from spring-security-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch rename to spring-security-mvc-login/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch diff --git a/spring-security-login/.gitignore b/spring-security-mvc-login/.gitignore similarity index 100% rename from spring-security-login/.gitignore rename to spring-security-mvc-login/.gitignore diff --git a/spring-security-login/.project b/spring-security-mvc-login/.project similarity index 100% rename from spring-security-login/.project rename to spring-security-mvc-login/.project diff --git a/spring-security-login/.settings/.jsdtscope b/spring-security-mvc-login/.settings/.jsdtscope similarity index 100% rename from spring-security-login/.settings/.jsdtscope rename to spring-security-mvc-login/.settings/.jsdtscope diff --git a/spring-security-login/.settings/org.eclipse.jdt.core.prefs b/spring-security-mvc-login/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from spring-security-login/.settings/org.eclipse.jdt.core.prefs rename to spring-security-mvc-login/.settings/org.eclipse.jdt.core.prefs diff --git a/spring-security-login/.settings/org.eclipse.jdt.ui.prefs b/spring-security-mvc-login/.settings/org.eclipse.jdt.ui.prefs similarity index 100% rename from spring-security-login/.settings/org.eclipse.jdt.ui.prefs rename to spring-security-mvc-login/.settings/org.eclipse.jdt.ui.prefs diff --git a/spring-security-login/.settings/org.eclipse.m2e.core.prefs b/spring-security-mvc-login/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from spring-security-login/.settings/org.eclipse.m2e.core.prefs rename to spring-security-mvc-login/.settings/org.eclipse.m2e.core.prefs diff --git a/spring-security-login/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-mvc-login/.settings/org.eclipse.m2e.wtp.prefs similarity index 100% rename from spring-security-login/.settings/org.eclipse.m2e.wtp.prefs rename to spring-security-mvc-login/.settings/org.eclipse.m2e.wtp.prefs diff --git a/spring-security-login/.settings/org.eclipse.wst.common.component b/spring-security-mvc-login/.settings/org.eclipse.wst.common.component similarity index 100% rename from spring-security-login/.settings/org.eclipse.wst.common.component rename to spring-security-mvc-login/.settings/org.eclipse.wst.common.component diff --git a/spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-mvc-login/.settings/org.eclipse.wst.common.project.facet.core.xml similarity index 100% rename from spring-security-login/.settings/org.eclipse.wst.common.project.facet.core.xml rename to spring-security-mvc-login/.settings/org.eclipse.wst.common.project.facet.core.xml diff --git a/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-mvc-login/.settings/org.eclipse.wst.jsdt.ui.superType.container similarity index 100% rename from spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.container rename to spring-security-mvc-login/.settings/org.eclipse.wst.jsdt.ui.superType.container diff --git a/spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-mvc-login/.settings/org.eclipse.wst.jsdt.ui.superType.name similarity index 100% rename from spring-security-login/.settings/org.eclipse.wst.jsdt.ui.superType.name rename to spring-security-mvc-login/.settings/org.eclipse.wst.jsdt.ui.superType.name diff --git a/spring-security-login/.settings/org.eclipse.wst.validation.prefs b/spring-security-mvc-login/.settings/org.eclipse.wst.validation.prefs similarity index 100% rename from spring-security-login/.settings/org.eclipse.wst.validation.prefs rename to spring-security-mvc-login/.settings/org.eclipse.wst.validation.prefs diff --git a/spring-security-login/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-mvc-login/.settings/org.eclipse.wst.ws.service.policy.prefs similarity index 100% rename from spring-security-login/.settings/org.eclipse.wst.ws.service.policy.prefs rename to spring-security-mvc-login/.settings/org.eclipse.wst.ws.service.policy.prefs diff --git a/spring-security-login/.springBeans b/spring-security-mvc-login/.springBeans similarity index 100% rename from spring-security-login/.springBeans rename to spring-security-mvc-login/.springBeans diff --git a/spring-security-login/README.md b/spring-security-mvc-login/README.md similarity index 100% rename from spring-security-login/README.md rename to spring-security-mvc-login/README.md diff --git a/spring-security-login/pom.xml b/spring-security-mvc-login/pom.xml similarity index 100% rename from spring-security-login/pom.xml rename to spring-security-mvc-login/pom.xml diff --git a/spring-security-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java b/spring-security-mvc-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java similarity index 100% rename from spring-security-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java rename to spring-security-mvc-login/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java diff --git a/spring-security-login/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-mvc-login/src/main/java/org/baeldung/spring/MvcConfig.java similarity index 100% rename from spring-security-login/src/main/java/org/baeldung/spring/MvcConfig.java rename to spring-security-mvc-login/src/main/java/org/baeldung/spring/MvcConfig.java diff --git a/spring-security-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-mvc-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java similarity index 100% rename from spring-security-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java rename to spring-security-mvc-login/src/main/java/org/baeldung/spring/SecSecurityConfig.java diff --git a/spring-security-login/src/main/resources/logback.xml b/spring-security-mvc-login/src/main/resources/logback.xml similarity index 100% rename from spring-security-login/src/main/resources/logback.xml rename to spring-security-mvc-login/src/main/resources/logback.xml diff --git a/spring-security-login/src/main/resources/webSecurityConfig.xml b/spring-security-mvc-login/src/main/resources/webSecurityConfig.xml similarity index 100% rename from spring-security-login/src/main/resources/webSecurityConfig.xml rename to spring-security-mvc-login/src/main/resources/webSecurityConfig.xml diff --git a/spring-security-login/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-mvc-login/src/main/webapp/WEB-INF/mvc-servlet.xml similarity index 100% rename from spring-security-login/src/main/webapp/WEB-INF/mvc-servlet.xml rename to spring-security-mvc-login/src/main/webapp/WEB-INF/mvc-servlet.xml diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-mvc-login/src/main/webapp/WEB-INF/view/anonymous.jsp similarity index 100% rename from spring-security-login/src/main/webapp/WEB-INF/view/anonymous.jsp rename to spring-security-mvc-login/src/main/webapp/WEB-INF/view/anonymous.jsp diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-mvc-login/src/main/webapp/WEB-INF/view/homepage.jsp similarity index 100% rename from spring-security-login/src/main/webapp/WEB-INF/view/homepage.jsp rename to spring-security-mvc-login/src/main/webapp/WEB-INF/view/homepage.jsp diff --git a/spring-security-login/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-mvc-login/src/main/webapp/WEB-INF/view/login.jsp similarity index 100% rename from spring-security-login/src/main/webapp/WEB-INF/view/login.jsp rename to spring-security-mvc-login/src/main/webapp/WEB-INF/view/login.jsp diff --git a/spring-security-login/src/main/webapp/WEB-INF/web.xml b/spring-security-mvc-login/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from spring-security-login/src/main/webapp/WEB-INF/web.xml rename to spring-security-mvc-login/src/main/webapp/WEB-INF/web.xml diff --git a/spring-security-login/src/test/resources/.gitignore b/spring-security-mvc-login/src/test/resources/.gitignore similarity index 100% rename from spring-security-login/src/test/resources/.gitignore rename to spring-security-mvc-login/src/test/resources/.gitignore From cd5e64c6880f45e3ae87d9369087ad2d07362260 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:25:28 +0300 Subject: [PATCH 187/206] initial work on custom mvc project for spring security --- spring-security-mvc-custom/.classpath | 31 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-mvc-custom/.gitignore | 13 ++ spring-security-mvc-custom/.project | 42 ++++ .../.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 ++++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 +++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 5 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 ++ .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-mvc-custom/.springBeans | 14 ++ spring-security-mvc-custom/README.md | 15 ++ spring-security-mvc-custom/pom.xml | 212 ++++++++++++++++++ .../security/CustomLogoutSuccessHandler.java | 29 +++ .../java/org/baeldung/spring/MvcConfig.java | 42 ++++ .../baeldung/spring/SecSecurityConfig.java | 14 ++ .../src/main/resources/logback.xml | 20 ++ .../src/main/resources/webSecurityConfig.xml | 40 ++++ .../src/main/webapp/WEB-INF/mvc-servlet.xml | 6 + .../main/webapp/WEB-INF/view/anonymous.jsp | 10 + .../src/main/webapp/WEB-INF/view/homepage.jsp | 22 ++ .../src/main/webapp/WEB-INF/view/login.jsp | 26 +++ .../src/main/webapp/WEB-INF/web.xml | 50 +++++ .../src/test/resources/.gitignore | 13 ++ 29 files changed, 800 insertions(+) create mode 100644 spring-security-mvc-custom/.classpath create mode 100644 spring-security-mvc-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-mvc-custom/.gitignore create mode 100644 spring-security-mvc-custom/.project create mode 100644 spring-security-mvc-custom/.settings/.jsdtscope create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-mvc-custom/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-mvc-custom/.springBeans create mode 100644 spring-security-mvc-custom/README.md create mode 100644 spring-security-mvc-custom/pom.xml create mode 100644 spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java create mode 100644 spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java create mode 100644 spring-security-mvc-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java create mode 100644 spring-security-mvc-custom/src/main/resources/logback.xml create mode 100644 spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml create mode 100644 spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp create mode 100644 spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp create mode 100644 spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp create mode 100644 spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-mvc-custom/src/test/resources/.gitignore diff --git a/spring-security-mvc-custom/.classpath b/spring-security-mvc-custom/.classpath new file mode 100644 index 000000000000..5dea19367768 --- /dev/null +++ b/spring-security-mvc-custom/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-mvc-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-mvc-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-mvc-custom/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-mvc-custom/.gitignore b/spring-security-mvc-custom/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-mvc-custom/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-mvc-custom/.project b/spring-security-mvc-custom/.project new file mode 100644 index 000000000000..81c640f9e3e2 --- /dev/null +++ b/spring-security-mvc-custom/.project @@ -0,0 +1,42 @@ + + + spring-security-mvc-custom + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/spring-security-mvc-custom/.settings/.jsdtscope b/spring-security-mvc-custom/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-mvc-custom/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-mvc-custom/.settings/org.eclipse.jdt.core.prefs b/spring-security-mvc-custom/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..723e5b12451a --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-mvc-custom/.settings/org.eclipse.jdt.ui.prefs b/spring-security-mvc-custom/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-mvc-custom/.settings/org.eclipse.m2e.core.prefs b/spring-security-mvc-custom/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-mvc-custom/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-mvc-custom/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component b/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..8b704170f815 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-mvc-custom/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..b46bc511b943 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.validation.prefs b/spring-security-mvc-custom/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-mvc-custom/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-mvc-custom/.springBeans b/spring-security-mvc-custom/.springBeans new file mode 100644 index 000000000000..7623a7e88836 --- /dev/null +++ b/spring-security-mvc-custom/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/mvc-servlet.xml + + + + diff --git a/spring-security-mvc-custom/README.md b/spring-security-mvc-custom/README.md new file mode 100644 index 000000000000..256078f4b6ed --- /dev/null +++ b/spring-security-mvc-custom/README.md @@ -0,0 +1,15 @@ +========= + +## Spring Security Login Example Project + + +### Relevant Articles: +- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) +- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) +- [Spring Security Expressions – hasRole Example](http://www.baeldung.com/spring-security-expressions-basic) + + +### Build the Project +``` +mvn clean install +``` diff --git a/spring-security-mvc-custom/pom.xml b/spring-security-mvc-custom/pom.xml new file mode 100644 index 000000000000..73968b027385 --- /dev/null +++ b/spring-security-mvc-custom/pom.xml @@ -0,0 +1,212 @@ + + 4.0.0 + org.baeldung + spring-security-mvc-login + 0.1-SNAPSHOT + + spring-security-mvc-login + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + org.springframework.security + spring-security-taglibs + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-mvc-login + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.2 + 2.15 + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java new file mode 100644 index 000000000000..7360b4e03f07 --- /dev/null +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java @@ -0,0 +1,29 @@ +package org.baeldung.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; +import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; + +public class CustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler { + + public CustomLogoutSuccessHandler() { + super(); + } + + // API + + @Override + public void onLogoutSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { + final String refererUrl = request.getHeader("Referer"); + System.out.println(refererUrl); + + super.onLogoutSuccess(request, response, authentication); + } + +} diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java new file mode 100644 index 000000000000..f6f3e2a429cb --- /dev/null +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -0,0 +1,42 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import org.springframework.web.servlet.view.InternalResourceViewResolver; +import org.springframework.web.servlet.view.JstlView; + +@EnableWebMvc +@Configuration +public class MvcConfig extends WebMvcConfigurerAdapter { + + public MvcConfig() { + super(); + } + + // API + + @Override + public void addViewControllers(final ViewControllerRegistry registry) { + super.addViewControllers(registry); + + registry.addViewController("/anonymous.html"); + + registry.addViewController("/login.html"); + registry.addViewController("/homepage.html"); + } + + @Bean + public ViewResolver viewResolver() { + final InternalResourceViewResolver bean = new InternalResourceViewResolver(); + + bean.setViewClass(JstlView.class); + bean.setPrefix("/WEB-INF/view/"); + bean.setSuffix(".jsp"); + + return bean; + } +} \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-mvc-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java new file mode 100644 index 000000000000..4da114c78b62 --- /dev/null +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -0,0 +1,14 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-mvc-custom/src/main/resources/logback.xml b/spring-security-mvc-custom/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-security-mvc-custom/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..742d9fdf03c3 --- /dev/null +++ b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml b/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/mvc-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp new file mode 100644 index 000000000000..d4e9c0289b29 --- /dev/null +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/anonymous.jsp @@ -0,0 +1,10 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + +

Anonymous page

+ + ">To Login + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp new file mode 100644 index 000000000000..93f9dc2fbdf8 --- /dev/null +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp @@ -0,0 +1,22 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> + + + + +

This is the body of the sample view

+ + + This text is only visible to a user +
+
+ + + This text is only visible to an admin +
+
+ + ">Logout + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp new file mode 100644 index 000000000000..013ceccb4e4d --- /dev/null +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp @@ -0,0 +1,26 @@ + + + + +

Login

+ +
+ + + + + + + + + + + + + +
User:
Password:
+ +
+ + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml b/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..c8d785a29842 --- /dev/null +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,50 @@ + + + + Spring MVC Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring + + + + org.springframework.web.context.ContextLoaderListener + + + + + mvc + org.springframework.web.servlet.DispatcherServlet + 1 + + + mvc + / + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/test/resources/.gitignore b/spring-security-mvc-custom/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-mvc-custom/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From 6858e46070aea7dae3321b8029a58c9f43c5e01d Mon Sep 17 00:00:00 2001 From: eugenp Date: Sun, 14 Jul 2013 15:26:29 +0300 Subject: [PATCH 188/206] finishing up the initial state of the custom mvc project --- .../.settings/org.eclipse.wst.common.component | 6 +++--- spring-security-mvc-custom/pom.xml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component b/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component index 8b704170f815..0a268a3d82a0 100644 --- a/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component +++ b/spring-security-mvc-custom/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - + - - + + diff --git a/spring-security-mvc-custom/pom.xml b/spring-security-mvc-custom/pom.xml index 73968b027385..6c6d4de4e9b7 100644 --- a/spring-security-mvc-custom/pom.xml +++ b/spring-security-mvc-custom/pom.xml @@ -1,10 +1,10 @@ 4.0.0 org.baeldung - spring-security-mvc-login + spring-security-mvc-custom 0.1-SNAPSHOT - spring-security-mvc-login + spring-security-mvc-custom war @@ -124,7 +124,7 @@ - spring-security-mvc-login + spring-security-mvc-custom src/main/resources From 909f05af95e9ddf48276fa490461109023ff01e8 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 15 Jul 2013 17:56:43 +0300 Subject: [PATCH 189/206] cleanup work on mvc custom project --- spring-security-mvc-custom/README.md | 3 - .../security/CustomLogoutSuccessHandler.java | 29 --------- ...SimpleUrlAuthenticationSuccessHandler.java | 62 +++++++++++++++++++ .../src/main/resources/webSecurityConfig.xml | 19 +++--- 4 files changed, 72 insertions(+), 41 deletions(-) delete mode 100644 spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java create mode 100644 spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java diff --git a/spring-security-mvc-custom/README.md b/spring-security-mvc-custom/README.md index 256078f4b6ed..a4e96afc2a29 100644 --- a/spring-security-mvc-custom/README.md +++ b/spring-security-mvc-custom/README.md @@ -4,9 +4,6 @@ ### Relevant Articles: -- [Spring Security Form Login](http://www.baeldung.com/spring-security-login) -- [Spring Security Logout](http://www.baeldung.com/spring-security-logout) -- [Spring Security Expressions – hasRole Example](http://www.baeldung.com/spring-security-expressions-basic) ### Build the Project diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java deleted file mode 100644 index 7360b4e03f07..000000000000 --- a/spring-security-mvc-custom/src/main/java/org/baeldung/security/CustomLogoutSuccessHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.baeldung.security; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.security.core.Authentication; -import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; -import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; - -public class CustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler implements LogoutSuccessHandler { - - public CustomLogoutSuccessHandler() { - super(); - } - - // API - - @Override - public void onLogoutSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { - final String refererUrl = request.getHeader("Referer"); - System.out.println(refererUrl); - - super.onLogoutSuccess(request, response, authentication); - } - -} diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java new file mode 100644 index 000000000000..c736e7974313 --- /dev/null +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java @@ -0,0 +1,62 @@ +package org.baeldung.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.WebAttributes; +import org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; + +/** + * AuthenticationSuccessHandler which can be configured with a default URL which users should be + * sent to upon successful authentication. + *

+ * The logic used is that of the {@link AbstractAuthenticationTargetUrlRequestHandler parent class}. + * + * @author Luke Taylor + * @since 3.0 + */ +public class MySimpleUrlAuthenticationSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler implements AuthenticationSuccessHandler { + + public MySimpleUrlAuthenticationSuccessHandler() { + super(); + } + + /** + * Constructor which sets the defaultTargetUrl property of the base class. + * @param defaultTargetUrl the URL to which the user should be redirected on successful authentication. + */ + public MySimpleUrlAuthenticationSuccessHandler(final String defaultTargetUrl) { + setDefaultTargetUrl(defaultTargetUrl); + } + + /** + * Calls the parent class {@code handle()} method to forward or redirect to the target URL, and + * then calls {@code clearAuthenticationAttributes()} to remove any leftover session data. + */ + @Override + public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { + handle(request, response, authentication); + clearAuthenticationAttributes(request); + } + + /** + * Removes temporary authentication-related data which may have been stored in the session + * during the authentication process. + */ + protected final void clearAuthenticationAttributes(final HttpServletRequest request) { + final HttpSession session = request.getSession(false); + + if (session == null) { + return; + } + + session.removeAttribute(WebAttributes.AUTHENTICATION_EXCEPTION); + } + +} diff --git a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml index 742d9fdf03c3..dffbcf0d0459 100644 --- a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml @@ -15,18 +15,19 @@ + authentication-success-handler-ref="myAuthenticationSuccessHandler" + authentication-failure-url="/login.html?error=true" + /> - + - - + + From 3a1897d610c0585e27c93cabd42018b92b3f000f Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 15 Jul 2013 18:08:19 +0300 Subject: [PATCH 190/206] redirect after login --- ...SimpleUrlAuthenticationSuccessHandler.java | 69 ++++++++++++++----- .../java/org/baeldung/spring/MvcConfig.java | 1 + .../src/main/resources/webSecurityConfig.xml | 1 + .../src/main/webapp/WEB-INF/view/console.jsp | 22 ++++++ 4 files changed, 76 insertions(+), 17 deletions(-) create mode 100644 spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java index c736e7974313..aa5a666e9aad 100644 --- a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java @@ -7,32 +7,67 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.security.core.Authentication; +import org.springframework.security.web.DefaultRedirectStrategy; +import org.springframework.security.web.RedirectStrategy; import org.springframework.security.web.WebAttributes; -import org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; +import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper; -/** - * AuthenticationSuccessHandler which can be configured with a default URL which users should be - * sent to upon successful authentication. - *

- * The logic used is that of the {@link AbstractAuthenticationTargetUrlRequestHandler parent class}. - * - * @author Luke Taylor - * @since 3.0 - */ -public class MySimpleUrlAuthenticationSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler implements AuthenticationSuccessHandler { - - public MySimpleUrlAuthenticationSuccessHandler() { +public class MySimpleUrlAuthenticationSuccessHandler implements AuthenticationSuccessHandler { + protected final Log logger = LogFactory.getLog(this.getClass()); + + private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy(); + + protected MySimpleUrlAuthenticationSuccessHandler() { super(); } /** - * Constructor which sets the defaultTargetUrl property of the base class. - * @param defaultTargetUrl the URL to which the user should be redirected on successful authentication. + * Invokes the configured {@code RedirectStrategy} with the URL returned by the {@code determineTargetUrl} method. + *

+ * The redirect will not be performed if the response has already been committed. + */ + protected void handle(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { + final String targetUrl = determineTargetUrl(request, response); + + if (response.isCommitted()) { + logger.debug("Response has already been committed. Unable to redirect to " + targetUrl); + return; + } + + redirectStrategy.sendRedirect(request, response, targetUrl); + } + + /** + * Builds the target URL according to the logic defined in the main class Javadoc. */ - public MySimpleUrlAuthenticationSuccessHandler(final String defaultTargetUrl) { - setDefaultTargetUrl(defaultTargetUrl); + protected String determineTargetUrl(final HttpServletRequest requestRaw, final HttpServletResponse response) { + // Check for the parameter and use that if available + + final SecurityContextHolderAwareRequestWrapper req = (SecurityContextHolderAwareRequestWrapper) requestRaw; + final boolean isUser = req.isUserInRole("ROLE_USER"); + final boolean isAdmin = req.isUserInRole("ROLE_ADMIN"); + if (isUser) { + return "/homepage.html"; + } else if (isAdmin) { + return "/console.html"; + } else { + throw new IllegalStateException(); + } + } + + /** + * Allows overriding of the behavior when redirecting to a target URL. + */ + public void setRedirectStrategy(final RedirectStrategy redirectStrategy) { + this.redirectStrategy = redirectStrategy; + } + + protected RedirectStrategy getRedirectStrategy() { + return redirectStrategy; } /** diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java b/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java index f6f3e2a429cb..2229516633ff 100644 --- a/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/spring/MvcConfig.java @@ -27,6 +27,7 @@ public void addViewControllers(final ViewControllerRegistry registry) { registry.addViewController("/login.html"); registry.addViewController("/homepage.html"); + registry.addViewController("/console.html"); } @Bean diff --git a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml index dffbcf0d0459..edf077615135 100644 --- a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml @@ -34,6 +34,7 @@ + diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp new file mode 100644 index 000000000000..93f9dc2fbdf8 --- /dev/null +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp @@ -0,0 +1,22 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> + + + + +

This is the body of the sample view

+ + + This text is only visible to a user +
+
+ + + This text is only visible to an admin +
+
+ + ">Logout + + + \ No newline at end of file From 984a0bfa478ddccee8cce5b5a30dd5324b25b5b9 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 15 Jul 2013 18:11:45 +0300 Subject: [PATCH 191/206] finishing up redirect work --- ...SimpleUrlAuthenticationSuccessHandler.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java index aa5a666e9aad..ba0c1c8c0d95 100644 --- a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java @@ -1,6 +1,7 @@ package org.baeldung.security; import java.io.IOException; +import java.util.Collection; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -10,11 +11,11 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.RedirectStrategy; import org.springframework.security.web.WebAttributes; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; -import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestWrapper; public class MySimpleUrlAuthenticationSuccessHandler implements AuthenticationSuccessHandler { protected final Log logger = LogFactory.getLog(this.getClass()); @@ -47,9 +48,20 @@ protected void handle(final HttpServletRequest request, final HttpServletRespons protected String determineTargetUrl(final HttpServletRequest requestRaw, final HttpServletResponse response) { // Check for the parameter and use that if available - final SecurityContextHolderAwareRequestWrapper req = (SecurityContextHolderAwareRequestWrapper) requestRaw; - final boolean isUser = req.isUserInRole("ROLE_USER"); - final boolean isAdmin = req.isUserInRole("ROLE_ADMIN"); + boolean isUser = false; + boolean isAdmin = false; + final Authentication authentication = org.springframework.security.core.context.SecurityContextHolder.getContext().getAuthentication(); + final Collection authorities = authentication.getAuthorities(); + for (final GrantedAuthority grantedAuthority : authorities) { + if (grantedAuthority.getAuthority().equals("ROLE_USER")) { + isUser = true; + break; + } else if (grantedAuthority.getAuthority().equals("ROLE_ADMIN")) { + isAdmin = true; + break; + } + } + if (isUser) { return "/homepage.html"; } else if (isAdmin) { From 495a13537d844a34f9923a51f39502d743b48609 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 15 Jul 2013 19:42:05 +0300 Subject: [PATCH 192/206] redirect after login work --- ...SimpleUrlAuthenticationSuccessHandler.java | 5 +- .../src/main/resources/webSecurityConfig.xml | 47 +++++++------------ .../src/main/webapp/WEB-INF/view/console.jsp | 2 +- .../src/main/webapp/WEB-INF/view/homepage.jsp | 12 ++--- 4 files changed, 27 insertions(+), 39 deletions(-) diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java index ba0c1c8c0d95..ee63df11300c 100644 --- a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java @@ -12,6 +12,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.RedirectStrategy; import org.springframework.security.web.WebAttributes; @@ -46,11 +47,9 @@ protected void handle(final HttpServletRequest request, final HttpServletRespons * Builds the target URL according to the logic defined in the main class Javadoc. */ protected String determineTargetUrl(final HttpServletRequest requestRaw, final HttpServletResponse response) { - // Check for the parameter and use that if available - boolean isUser = false; boolean isAdmin = false; - final Authentication authentication = org.springframework.security.core.context.SecurityContextHolder.getContext().getAuthentication(); + final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); final Collection authorities = authentication.getAuthorities(); for (final GrantedAuthority grantedAuthority : authorities) { if (grantedAuthority.getAuthority().equals("ROLE_USER")) { diff --git a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml index edf077615135..de7bd9b9818a 100644 --- a/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml +++ b/spring-security-mvc-custom/src/main/resources/webSecurityConfig.xml @@ -1,42 +1,31 @@ - - - + + - - - - - + - + - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp index 93f9dc2fbdf8..8f73dbfd0387 100644 --- a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp @@ -4,7 +4,7 @@ -

This is the body of the sample view

+

This is the landing page for the admin

This text is only visible to a user diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp index 93f9dc2fbdf8..43f86bb059f2 100644 --- a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp @@ -1,22 +1,22 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> +<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags"%> -

This is the body of the sample view

+

This is the homepage for the user

This text is only visible to a user -
+
- + This text is only visible to an admin -
+
">Logout - + \ No newline at end of file From dc2323f12d42ee6d4f19739095e855b91314c662 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 15 Jul 2013 19:46:19 +0300 Subject: [PATCH 193/206] standard login and logout --- .../src/main/webapp/WEB-INF/view/console.jsp | 2 +- .../src/main/webapp/WEB-INF/view/homepage.jsp | 2 +- .../src/main/webapp/WEB-INF/view/login.jsp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp index 8f73dbfd0387..d18b59a10caf 100644 --- a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/console.jsp @@ -16,7 +16,7 @@
- ">Logout + ">Logout \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp index 43f86bb059f2..afd2c6da594f 100644 --- a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/homepage.jsp @@ -16,7 +16,7 @@
- ">Logout + ">Logout \ No newline at end of file diff --git a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp index 013ceccb4e4d..ba8b7748042b 100644 --- a/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp +++ b/spring-security-mvc-custom/src/main/webapp/WEB-INF/view/login.jsp @@ -4,7 +4,7 @@

Login

-
+ From 6458f2f32a11c6762e50982ba45f2c872b17f398 Mon Sep 17 00:00:00 2001 From: eugenp Date: Mon, 15 Jul 2013 22:37:16 +0300 Subject: [PATCH 194/206] work on custom success handler --- ...SimpleUrlAuthenticationSuccessHandler.java | 56 +++++++------------ 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java index ee63df11300c..19f1ca76a6ce 100644 --- a/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java +++ b/spring-security-mvc-custom/src/main/java/org/baeldung/security/MySimpleUrlAuthenticationSuccessHandler.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.util.Collection; -import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -12,7 +11,6 @@ import org.apache.commons.logging.LogFactory; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.RedirectStrategy; import org.springframework.security.web.WebAttributes; @@ -27,13 +25,18 @@ protected MySimpleUrlAuthenticationSuccessHandler() { super(); } - /** - * Invokes the configured {@code RedirectStrategy} with the URL returned by the {@code determineTargetUrl} method. - *

- * The redirect will not be performed if the response has already been committed. - */ - protected void handle(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { - final String targetUrl = determineTargetUrl(request, response); + // API + + @Override + public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException { + handle(request, response, authentication); + clearAuthenticationAttributes(request); + } + + // IMPL + + protected void handle(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException { + final String targetUrl = determineTargetUrl(authentication); if (response.isCommitted()) { logger.debug("Response has already been committed. Unable to redirect to " + targetUrl); @@ -43,13 +46,9 @@ protected void handle(final HttpServletRequest request, final HttpServletRespons redirectStrategy.sendRedirect(request, response, targetUrl); } - /** - * Builds the target URL according to the logic defined in the main class Javadoc. - */ - protected String determineTargetUrl(final HttpServletRequest requestRaw, final HttpServletResponse response) { + protected String determineTargetUrl(final Authentication authentication) { boolean isUser = false; boolean isAdmin = false; - final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); final Collection authorities = authentication.getAuthorities(); for (final GrantedAuthority grantedAuthority : authorities) { if (grantedAuthority.getAuthority().equals("ROLE_USER")) { @@ -70,27 +69,6 @@ protected String determineTargetUrl(final HttpServletRequest requestRaw, final H } } - /** - * Allows overriding of the behavior when redirecting to a target URL. - */ - public void setRedirectStrategy(final RedirectStrategy redirectStrategy) { - this.redirectStrategy = redirectStrategy; - } - - protected RedirectStrategy getRedirectStrategy() { - return redirectStrategy; - } - - /** - * Calls the parent class {@code handle()} method to forward or redirect to the target URL, and - * then calls {@code clearAuthenticationAttributes()} to remove any leftover session data. - */ - @Override - public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { - handle(request, response, authentication); - clearAuthenticationAttributes(request); - } - /** * Removes temporary authentication-related data which may have been stored in the session * during the authentication process. @@ -105,4 +83,12 @@ protected final void clearAuthenticationAttributes(final HttpServletRequest requ session.removeAttribute(WebAttributes.AUTHENTICATION_EXCEPTION); } + public void setRedirectStrategy(final RedirectStrategy redirectStrategy) { + this.redirectStrategy = redirectStrategy; + } + + protected RedirectStrategy getRedirectStrategy() { + return redirectStrategy; + } + } From aef5e030974c3d8f608417101c5e3426b908464c Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 17 Jul 2013 22:44:08 +0300 Subject: [PATCH 195/206] work on different mechanisms of accessing the currently authenticated principal --- .../security/AuthenticationFacade.java | 21 ++++++++++ .../security/IAuthenticationFacade.java | 9 +++++ .../web/controller/FooController.java | 5 +-- .../web/controller/SecurityController1.java | 39 +++++++++++++++++++ .../web/controller/SecurityController2.java | 25 ++++++++++++ .../web/controller/SecurityController3.java | 24 ++++++++++++ .../web/controller/SecurityController4.java | 28 +++++++++++++ .../web/controller/SecurityController5.java | 30 ++++++++++++++ 8 files changed, 177 insertions(+), 4 deletions(-) create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/security/AuthenticationFacade.java create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/security/IAuthenticationFacade.java create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController1.java create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java create mode 100644 spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/security/AuthenticationFacade.java b/spring-security-rest-custom/src/main/java/org/baeldung/security/AuthenticationFacade.java new file mode 100644 index 000000000000..5a3c77b070f3 --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/security/AuthenticationFacade.java @@ -0,0 +1,21 @@ +package org.baeldung.security; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; + +@Component +public class AuthenticationFacade implements IAuthenticationFacade { + + public AuthenticationFacade() { + super(); + } + + // API + + @Override + public final Authentication getAuthentication() { + return SecurityContextHolder.getContext().getAuthentication(); + } + +} diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/security/IAuthenticationFacade.java b/spring-security-rest-custom/src/main/java/org/baeldung/security/IAuthenticationFacade.java new file mode 100644 index 000000000000..d1223e41cf3a --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/security/IAuthenticationFacade.java @@ -0,0 +1,9 @@ +package org.baeldung.security; + +import org.springframework.security.core.Authentication; + +public interface IAuthenticationFacade { + + Authentication getAuthentication(); + +} \ No newline at end of file diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/FooController.java index d6eeea5f771d..ff5a00fd9509 100644 --- a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/FooController.java @@ -1,7 +1,5 @@ package org.baeldung.web.controller; -import javax.servlet.http.HttpServletResponse; - import org.baeldung.web.dto.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; @@ -10,7 +8,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.util.UriComponentsBuilder; @Controller @RequestMapping(value = "/foo") @@ -27,7 +24,7 @@ public FooController() { @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody - public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { + public Foo findOne(@PathVariable("id") final Long id) { return new Foo(); } diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController1.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController1.java new file mode 100644 index 000000000000..d06f15af93e0 --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController1.java @@ -0,0 +1,39 @@ +package org.baeldung.web.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.security.authentication.AnonymousAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController1 { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public SecurityController1() { + super(); + } + + // API + + @RequestMapping(value = "/username1", method = RequestMethod.GET) + @ResponseBody + public String currentUserName() { + final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (!(authentication instanceof AnonymousAuthenticationToken)) { + final String currentPrincipalName = authentication.getName(); + System.out.println("Authentication: " + authentication); + System.out.println("Principal: " + authentication.getPrincipal()); + return currentPrincipalName; + } + + return null; + } + +} diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java new file mode 100644 index 000000000000..ac02738d0cd2 --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController2.java @@ -0,0 +1,25 @@ +package org.baeldung.web.controller; + +import java.security.Principal; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController2 { + + public SecurityController2() { + super(); + } + + // API + + @RequestMapping(value = "/username2", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple(final Principal principal) { + return principal.getName(); + } + +} diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java new file mode 100644 index 000000000000..a4f2e804693b --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java @@ -0,0 +1,24 @@ +package org.baeldung.web.controller; + +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController3 { + + public SecurityController3() { + super(); + } + + // API + + @RequestMapping(value = "/username3", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple(final Authentication authentication) { + return authentication.getName(); + } + +} diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java new file mode 100644 index 000000000000..0434cc5fdc49 --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController4.java @@ -0,0 +1,28 @@ +package org.baeldung.web.controller; + +import java.security.Principal; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController4 { + + public SecurityController4() { + super(); + } + + // API + + @RequestMapping(value = "/username4", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple(final HttpServletRequest request) { + final Principal principal = request.getUserPrincipal(); + return principal.getName(); + } + +} diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java new file mode 100644 index 000000000000..e1a0c35cc691 --- /dev/null +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController5.java @@ -0,0 +1,30 @@ +package org.baeldung.web.controller; + +import org.baeldung.security.IAuthenticationFacade; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController5 { + + @Autowired + private IAuthenticationFacade authenticationFacade; + + public SecurityController5() { + super(); + } + + // API + + @RequestMapping(value = "/username5", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple() { + final Authentication authentication = authenticationFacade.getAuthentication(); + return authentication.getName(); + } + +} From 7bdb8ec66dca8e3589d329db7dfbd790b1443bdd Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 17 Jul 2013 23:17:36 +0300 Subject: [PATCH 196/206] finished work on the user access post --- .../org/baeldung/security/CustomAuthenticationProvider.java | 5 ++++- .../org/baeldung/web/controller/SecurityController3.java | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java b/spring-security-rest-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java index e2ea9842afc0..4b9b3e8ee926 100644 --- a/spring-security-rest-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java +++ b/spring-security-rest-custom/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java @@ -9,6 +9,8 @@ import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; @Component @@ -27,7 +29,8 @@ public Authentication authenticate(final Authentication authentication) throws A if (name.equals("admin") && password.equals("system")) { final List grantedAuths = new ArrayList<>(); grantedAuths.add(new SimpleGrantedAuthority("ROLE_USER")); - final Authentication auth = new UsernamePasswordAuthenticationToken(name, password, grantedAuths); + final UserDetails principal = new User(name, password, grantedAuths); + final Authentication auth = new UsernamePasswordAuthenticationToken(principal, password, grantedAuths); return auth; } else { return null; diff --git a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java index a4f2e804693b..fb207b43ddf3 100644 --- a/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java +++ b/spring-security-rest-custom/src/main/java/org/baeldung/web/controller/SecurityController3.java @@ -1,6 +1,7 @@ package org.baeldung.web.controller; import org.springframework.security.core.Authentication; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -18,6 +19,8 @@ public SecurityController3() { @RequestMapping(value = "/username3", method = RequestMethod.GET) @ResponseBody public String currentUserNameSimple(final Authentication authentication) { + UserDetails userDetails = (UserDetails) authentication.getPrincipal(); + System.out.println("Retrieved user with authorities: " + userDetails.getAuthorities()); return authentication.getName(); } From ce7f1f11fc73a36c5a9b9687508dd19404d8ec04 Mon Sep 17 00:00:00 2001 From: eugenp Date: Wed, 24 Jul 2013 01:22:15 +0300 Subject: [PATCH 197/206] initial work on the exception handler example --- .../RestResponseEntityExceptionHandler.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 spring-security-rest-full/src/main/java/org/baeldung/web/error/RestResponseEntityExceptionHandler.java diff --git a/spring-security-rest-full/src/main/java/org/baeldung/web/error/RestResponseEntityExceptionHandler.java b/spring-security-rest-full/src/main/java/org/baeldung/web/error/RestResponseEntityExceptionHandler.java new file mode 100644 index 000000000000..95e8bcb677d1 --- /dev/null +++ b/spring-security-rest-full/src/main/java/org/baeldung/web/error/RestResponseEntityExceptionHandler.java @@ -0,0 +1,78 @@ +package org.baeldung.web.error; + +import javax.persistence.EntityNotFoundException; + +import org.hibernate.exception.ConstraintViolationException; +import org.springframework.dao.DataAccessException; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.dao.InvalidDataAccessApiUsageException; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@ControllerAdvice +public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler { + + public RestResponseEntityExceptionHandler() { + super(); + } + + // API + + // 400 + + @ExceptionHandler({ ConstraintViolationException.class, DataIntegrityViolationException.class }) + public ResponseEntity handleBadRequest(final RuntimeException ex, final WebRequest request) { + final String bodyOfResponse = "This should be application specific"; + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.BAD_REQUEST, request); + } + + @Override + protected ResponseEntity handleHttpMessageNotReadable(final HttpMessageNotReadableException ex, final HttpHeaders headers, final HttpStatus status, final WebRequest request) { + final String bodyOfResponse = "This should be application specific"; + // ex.getCause() instanceof JsonMappingException, JsonParseException // for additional information later on + return handleExceptionInternal(ex, bodyOfResponse, headers, HttpStatus.BAD_REQUEST, request); + } + + @Override + protected ResponseEntity handleMethodArgumentNotValid(final MethodArgumentNotValidException ex, final HttpHeaders headers, final HttpStatus status, final WebRequest request) { + final String bodyOfResponse = "This should be application specific"; + return handleExceptionInternal(ex, bodyOfResponse, headers, HttpStatus.BAD_REQUEST, request); + } + + // 403 + + // 404 + + @ExceptionHandler(value = { EntityNotFoundException.class }) + protected ResponseEntity handleBadRequest(final EntityNotFoundException ex, final WebRequest request) { + final String bodyOfResponse = "This should be application specific"; + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request); + } + + // 409 + + @ExceptionHandler({ InvalidDataAccessApiUsageException.class, DataAccessException.class }) + protected ResponseEntity handleConflict(final RuntimeException ex, final WebRequest request) { + final String bodyOfResponse = "This should be application specific"; + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.CONFLICT, request); + } + + // 412 + + // 500 + + @ExceptionHandler({ NullPointerException.class, IllegalArgumentException.class, IllegalStateException.class }) + /*500*/public ResponseEntity handleInternal(final RuntimeException ex, final WebRequest request) { + logger.error("500 Status Code", ex); + final String bodyOfResponse = "This should be application specific"; + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.INTERNAL_SERVER_ERROR, request); + } + +} From 4232fa188ac2cbb3fe47cf20b949a47479ace5b0 Mon Sep 17 00:00:00 2001 From: eparaschiv Date: Wed, 24 Jul 2013 23:36:55 +0300 Subject: [PATCH 198/206] adding controller, cleanup --- spring-security-rest/pom.xml | 440 +++++++++--------- .../org/baeldung/persistence/model/Foo.java | 73 +++ .../java/org/baeldung/spring/WebConfig.java | 5 +- .../web/controller/FooController.java | 48 ++ 4 files changed, 352 insertions(+), 214 deletions(-) create mode 100644 spring-security-rest/src/main/java/org/baeldung/persistence/model/Foo.java create mode 100644 spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java diff --git a/spring-security-rest/pom.xml b/spring-security-rest/pom.xml index 3cf7aef1285d..1a847975829a 100644 --- a/spring-security-rest/pom.xml +++ b/spring-security-rest/pom.xml @@ -1,215 +1,229 @@ - - 4.0.0 - org.baeldung - spring-security-rest - 0.1-SNAPSHOT - - spring-security-rest - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - com.google.guava - guava - ${guava.version} - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-rest - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 4.2.2.Final - 5.1.25 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.1 - 1.8.9 - - - 1.4.2 - 2.15 - + + 4.0.0 + org.baeldung + spring-security-rest + 0.1-SNAPSHOT + + spring-security-rest + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + + + + + + com.google.guava + guava + ${guava.version} + + + org.apache.commons + commons-lang3 + 3.1 + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.2 + 2.15 + \ No newline at end of file diff --git a/spring-security-rest/src/main/java/org/baeldung/persistence/model/Foo.java b/spring-security-rest/src/main/java/org/baeldung/persistence/model/Foo.java new file mode 100644 index 000000000000..0124424f5969 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/persistence/model/Foo.java @@ -0,0 +1,73 @@ +package org.baeldung.persistence.model; + +import java.io.Serializable; + +public class Foo implements Serializable { + + private long id; + + private String name; + + public Foo() { + super(); + } + + public Foo(final String name) { + super(); + + this.name = name; + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + // + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + +} diff --git a/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java index 29ddb3eaecf1..4d1d6e6403b4 100644 --- a/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java +++ b/spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java @@ -2,10 +2,13 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @ComponentScan("org.baeldung.web") -public class WebConfig { +@EnableWebMvc +public class WebConfig extends WebMvcConfigurerAdapter { public WebConfig() { super(); diff --git a/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java new file mode 100644 index 000000000000..642878b91826 --- /dev/null +++ b/spring-security-rest/src/main/java/org/baeldung/web/controller/FooController.java @@ -0,0 +1,48 @@ +package org.baeldung.web.controller; + +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; + +import java.util.List; + +import javax.servlet.http.HttpServletResponse; + +import org.baeldung.persistence.model.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.util.UriComponentsBuilder; + +import com.google.common.collect.Lists; + +@Controller +@RequestMapping(value = "/foos") +public class FooController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public FooController() { + super(); + } + + // API + + // read + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo findOne(@PathVariable("id") final Long id, final UriComponentsBuilder uriBuilder, final HttpServletResponse response) { + return new Foo(randomAlphabetic(6)); + } + + @RequestMapping(method = RequestMethod.GET) + @ResponseBody + public List findAll() { + return Lists.newArrayList(new Foo(randomAlphabetic(6))); + } + +} From 1b2cf960af4e9a40792ef6816e57a883ab215acb Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 00:06:35 +0300 Subject: [PATCH 199/206] initial work on the rest template tutorial project --- spring-security-rest-template/.classpath | 31 +++ ...e.wst.jsdt.core.javascriptValidator.launch | 7 + spring-security-rest-template/.gitignore | 13 + spring-security-rest-template/.project | 42 +++ .../.settings/.jsdtscope | 5 + .../.settings/org.eclipse.jdt.core.prefs | 95 +++++++ .../.settings/org.eclipse.jdt.ui.prefs | 55 ++++ .../.settings/org.eclipse.m2e.core.prefs | 4 + .../.settings/org.eclipse.m2e.wtp.prefs | 2 + .../org.eclipse.wst.common.component | 10 + ....eclipse.wst.common.project.facet.core.xml | 5 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../org.eclipse.wst.validation.prefs | 14 + .../org.eclipse.wst.ws.service.policy.prefs | 2 + spring-security-rest-template/.springBeans | 14 + spring-security-rest-template/README.md | 7 + spring-security-rest-template/pom.xml | 242 ++++++++++++++++++ .../security/AuthenticationFacade.java | 21 ++ .../CustomAuthenticationProvider.java | 45 ++++ .../security/IAuthenticationFacade.java | 9 + ...uestAwareAuthenticationSuccessHandler.java | 48 ++++ .../RestAuthenticationEntryPoint.java | 23 ++ .../baeldung/spring/SecSecurityConfig.java | 16 ++ .../java/org/baeldung/spring/WebConfig.java | 31 +++ .../web/controller/FooController.java | 31 +++ .../web/controller/SecurityController1.java | 39 +++ .../web/controller/SecurityController2.java | 25 ++ .../web/controller/SecurityController3.java | 27 ++ .../web/controller/SecurityController4.java | 28 ++ .../web/controller/SecurityController5.java | 30 +++ .../main/java/org/baeldung/web/dto/Foo.java | 14 + .../src/main/resources/logback.xml | 20 ++ .../src/main/resources/webSecurityConfig.xml | 20 ++ .../src/main/webapp/WEB-INF/api-servlet.xml | 6 + .../src/main/webapp/WEB-INF/web.xml | 51 ++++ .../src/test/resources/.gitignore | 13 + 37 files changed, 1047 insertions(+) create mode 100644 spring-security-rest-template/.classpath create mode 100644 spring-security-rest-template/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch create mode 100644 spring-security-rest-template/.gitignore create mode 100644 spring-security-rest-template/.project create mode 100644 spring-security-rest-template/.settings/.jsdtscope create mode 100644 spring-security-rest-template/.settings/org.eclipse.jdt.core.prefs create mode 100644 spring-security-rest-template/.settings/org.eclipse.jdt.ui.prefs create mode 100644 spring-security-rest-template/.settings/org.eclipse.m2e.core.prefs create mode 100644 spring-security-rest-template/.settings/org.eclipse.m2e.wtp.prefs create mode 100644 spring-security-rest-template/.settings/org.eclipse.wst.common.component create mode 100644 spring-security-rest-template/.settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 spring-security-rest-template/.settings/org.eclipse.wst.validation.prefs create mode 100644 spring-security-rest-template/.settings/org.eclipse.wst.ws.service.policy.prefs create mode 100644 spring-security-rest-template/.springBeans create mode 100644 spring-security-rest-template/README.md create mode 100644 spring-security-rest-template/pom.xml create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/spring/SecSecurityConfig.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/spring/WebConfig.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/dto/Foo.java create mode 100644 spring-security-rest-template/src/main/resources/logback.xml create mode 100644 spring-security-rest-template/src/main/resources/webSecurityConfig.xml create mode 100644 spring-security-rest-template/src/main/webapp/WEB-INF/api-servlet.xml create mode 100644 spring-security-rest-template/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-security-rest-template/src/test/resources/.gitignore diff --git a/spring-security-rest-template/.classpath b/spring-security-rest-template/.classpath new file mode 100644 index 000000000000..5dea19367768 --- /dev/null +++ b/spring-security-rest-template/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/spring-security-rest-template/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch b/spring-security-rest-template/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch new file mode 100644 index 000000000000..627021fb9640 --- /dev/null +++ b/spring-security-rest-template/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch @@ -0,0 +1,7 @@ + + + + + + + diff --git a/spring-security-rest-template/.gitignore b/spring-security-rest-template/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-rest-template/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-security-rest-template/.project b/spring-security-rest-template/.project new file mode 100644 index 000000000000..1e6360f7e2a8 --- /dev/null +++ b/spring-security-rest-template/.project @@ -0,0 +1,42 @@ + + + spring-security-rest-template + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.springframework.ide.eclipse.core.springnature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/spring-security-rest-template/.settings/.jsdtscope b/spring-security-rest-template/.settings/.jsdtscope new file mode 100644 index 000000000000..7b3f0c8b9fae --- /dev/null +++ b/spring-security-rest-template/.settings/.jsdtscope @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-rest-template/.settings/org.eclipse.jdt.core.prefs b/spring-security-rest-template/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000000..df8135651462 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,95 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=warning +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=error +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=error +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/spring-security-rest-template/.settings/org.eclipse.jdt.ui.prefs b/spring-security-rest-template/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 000000000000..471e9b0d81fc --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,55 @@ +#Sat Jan 21 23:04:06 EET 2012 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_missing_override_annotations_interface_methods=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=true +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=true +sp_cleanup.correct_indentation=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=true +sp_cleanup.make_local_variable_final=true +sp_cleanup.make_parameters_final=true +sp_cleanup.make_private_fields_final=false +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=true +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=false +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=true +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=true +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=true +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=true +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/spring-security-rest-template/.settings/org.eclipse.m2e.core.prefs b/spring-security-rest-template/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000000..f897a7f1cb23 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/spring-security-rest-template/.settings/org.eclipse.m2e.wtp.prefs b/spring-security-rest-template/.settings/org.eclipse.m2e.wtp.prefs new file mode 100644 index 000000000000..ef8608962237 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.m2e.wtp.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.m2e.wtp.enabledProjectSpecificPrefs=false diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.common.component b/spring-security-rest-template/.settings/org.eclipse.wst.common.component new file mode 100644 index 000000000000..d81a71a7eb1a --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.common.project.facet.core.xml b/spring-security-rest-template/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 000000000000..b46bc511b943 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.container b/spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 000000000000..3bd5d0a48039 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.name b/spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 000000000000..05bd71b6ec2c --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.validation.prefs b/spring-security-rest-template/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 000000000000..cacf5451aef7 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,14 @@ +DELEGATES_PREFERENCE=delegateValidatorList +USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator; +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300 +eclipse.preferences.version=1 +override=true +suspend=false +vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01 +vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01 +vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01 +vals/org.eclipse.wst.jsdt.web.core.JsBatchValidator/global=TF02 +vf.version=3 diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.ws.service.policy.prefs b/spring-security-rest-template/.settings/org.eclipse.wst.ws.service.policy.prefs new file mode 100644 index 000000000000..9cfcabe16f73 --- /dev/null +++ b/spring-security-rest-template/.settings/org.eclipse.wst.ws.service.policy.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.wst.ws.service.policy.projectEnabled=false diff --git a/spring-security-rest-template/.springBeans b/spring-security-rest-template/.springBeans new file mode 100644 index 000000000000..a79097f40d30 --- /dev/null +++ b/spring-security-rest-template/.springBeans @@ -0,0 +1,14 @@ + + + 1 + + + + + + + src/main/webapp/WEB-INF/api-servlet.xml + + + + diff --git a/spring-security-rest-template/README.md b/spring-security-rest-template/README.md new file mode 100644 index 000000000000..3ec8cf92c71a --- /dev/null +++ b/spring-security-rest-template/README.md @@ -0,0 +1,7 @@ +========= + +## Spring Security for REST Example Project + + +### Relevant Articles: +- [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) diff --git a/spring-security-rest-template/pom.xml b/spring-security-rest-template/pom.xml new file mode 100644 index 000000000000..51fb1db96d66 --- /dev/null +++ b/spring-security-rest-template/pom.xml @@ -0,0 +1,242 @@ + + 4.0.0 + org.baeldung + spring-security-rest-template + 0.1-SNAPSHOT + + spring-security-rest-template + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + org.springframework + spring-oxm + ${org.springframework.version} + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest-template + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + true + source + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.2.Final + 5.1.25 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.2 + 2.15 + + + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java b/spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java new file mode 100644 index 000000000000..5a3c77b070f3 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java @@ -0,0 +1,21 @@ +package org.baeldung.security; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; + +@Component +public class AuthenticationFacade implements IAuthenticationFacade { + + public AuthenticationFacade() { + super(); + } + + // API + + @Override + public final Authentication getAuthentication() { + return SecurityContextHolder.getContext().getAuthentication(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java b/spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java new file mode 100644 index 000000000000..4b9b3e8ee926 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java @@ -0,0 +1,45 @@ +package org.baeldung.security; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Component; + +@Component +public class CustomAuthenticationProvider implements AuthenticationProvider { + + public CustomAuthenticationProvider() { + super(); + } + + // API + + @Override + public Authentication authenticate(final Authentication authentication) throws AuthenticationException { + final String name = authentication.getName(); + final String password = authentication.getCredentials().toString(); + if (name.equals("admin") && password.equals("system")) { + final List grantedAuths = new ArrayList<>(); + grantedAuths.add(new SimpleGrantedAuthority("ROLE_USER")); + final UserDetails principal = new User(name, password, grantedAuths); + final Authentication auth = new UsernamePasswordAuthenticationToken(principal, password, grantedAuths); + return auth; + } else { + return null; + } + } + + @Override + public boolean supports(final Class authentication) { + return authentication.equals(UsernamePasswordAuthenticationToken.class); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java b/spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java new file mode 100644 index 000000000000..d1223e41cf3a --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java @@ -0,0 +1,9 @@ +package org.baeldung.security; + +import org.springframework.security.core.Authentication; + +public interface IAuthenticationFacade { + + Authentication getAuthentication(); + +} \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java b/spring-security-rest-template/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java new file mode 100644 index 000000000000..698052fa2b00 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/security/MySavedRequestAwareAuthenticationSuccessHandler.java @@ -0,0 +1,48 @@ +package org.baeldung.security; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; +import org.springframework.security.web.savedrequest.HttpSessionRequestCache; +import org.springframework.security.web.savedrequest.RequestCache; +import org.springframework.security.web.savedrequest.SavedRequest; +import org.springframework.util.StringUtils; + +public class MySavedRequestAwareAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { + + private RequestCache requestCache = new HttpSessionRequestCache(); + + @Override + public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws ServletException, IOException { + final SavedRequest savedRequest = requestCache.getRequest(request, response); + + if (savedRequest == null) { + super.onAuthenticationSuccess(request, response, authentication); + + return; + } + final String targetUrlParameter = getTargetUrlParameter(); + if (isAlwaysUseDefaultTargetUrl() || (targetUrlParameter != null && StringUtils.hasText(request.getParameter(targetUrlParameter)))) { + requestCache.removeRequest(request, response); + super.onAuthenticationSuccess(request, response, authentication); + + return; + } + + clearAuthenticationAttributes(request); + + // Use the DefaultSavedRequest URL + // final String targetUrl = savedRequest.getRedirectUrl(); + // logger.debug("Redirecting to DefaultSavedRequest Url: " + targetUrl); + // getRedirectStrategy().sendRedirect(request, response, targetUrl); + } + + public void setRequestCache(final RequestCache requestCache) { + this.requestCache = requestCache; + } +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java b/spring-security-rest-template/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java new file mode 100644 index 000000000000..77aa32ff979e --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/security/RestAuthenticationEntryPoint.java @@ -0,0 +1,23 @@ +package org.baeldung.security; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Component; + +/** + * The Entry Point will not redirect to any sort of Login - it will return the 401 + */ +@Component +public final class RestAuthenticationEntryPoint implements AuthenticationEntryPoint { + + @Override + public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException { + response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized"); + } + +} \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/spring/SecSecurityConfig.java b/spring-security-rest-template/src/main/java/org/baeldung/spring/SecSecurityConfig.java new file mode 100644 index 000000000000..4ce80dab9f1c --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/spring/SecSecurityConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +@Configuration +@ImportResource({ "classpath:webSecurityConfig.xml" }) +@ComponentScan("org.baeldung.security") +public class SecSecurityConfig { + + public SecSecurityConfig() { + super(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/spring/WebConfig.java b/spring-security-rest-template/src/main/java/org/baeldung/spring/WebConfig.java new file mode 100644 index 000000000000..8c3d677af601 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/spring/WebConfig.java @@ -0,0 +1,31 @@ +package org.baeldung.spring; + +import java.util.List; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +@EnableWebMvc +@ComponentScan("org.baeldung.web") +public class WebConfig extends WebMvcConfigurerAdapter { + + public WebConfig() { + super(); + } + + // beans + + @Override + public void configureMessageConverters(final List> converters) { + super.configureMessageConverters(converters); + converters.add(new MappingJackson2HttpMessageConverter()); + } + + // + +} \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java new file mode 100644 index 000000000000..ff5a00fd9509 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java @@ -0,0 +1,31 @@ +package org.baeldung.web.controller; + +import org.baeldung.web.dto.Foo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +@RequestMapping(value = "/foo") +public class FooController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public FooController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Foo findOne(@PathVariable("id") final Long id) { + return new Foo(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java new file mode 100644 index 000000000000..d06f15af93e0 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java @@ -0,0 +1,39 @@ +package org.baeldung.web.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.security.authentication.AnonymousAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController1 { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public SecurityController1() { + super(); + } + + // API + + @RequestMapping(value = "/username1", method = RequestMethod.GET) + @ResponseBody + public String currentUserName() { + final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (!(authentication instanceof AnonymousAuthenticationToken)) { + final String currentPrincipalName = authentication.getName(); + System.out.println("Authentication: " + authentication); + System.out.println("Principal: " + authentication.getPrincipal()); + return currentPrincipalName; + } + + return null; + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java new file mode 100644 index 000000000000..ac02738d0cd2 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java @@ -0,0 +1,25 @@ +package org.baeldung.web.controller; + +import java.security.Principal; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController2 { + + public SecurityController2() { + super(); + } + + // API + + @RequestMapping(value = "/username2", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple(final Principal principal) { + return principal.getName(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java new file mode 100644 index 000000000000..fb207b43ddf3 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java @@ -0,0 +1,27 @@ +package org.baeldung.web.controller; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController3 { + + public SecurityController3() { + super(); + } + + // API + + @RequestMapping(value = "/username3", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple(final Authentication authentication) { + UserDetails userDetails = (UserDetails) authentication.getPrincipal(); + System.out.println("Retrieved user with authorities: " + userDetails.getAuthorities()); + return authentication.getName(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java new file mode 100644 index 000000000000..0434cc5fdc49 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java @@ -0,0 +1,28 @@ +package org.baeldung.web.controller; + +import java.security.Principal; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController4 { + + public SecurityController4() { + super(); + } + + // API + + @RequestMapping(value = "/username4", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple(final HttpServletRequest request) { + final Principal principal = request.getUserPrincipal(); + return principal.getName(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java new file mode 100644 index 000000000000..e1a0c35cc691 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java @@ -0,0 +1,30 @@ +package org.baeldung.web.controller; + +import org.baeldung.security.IAuthenticationFacade; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +public class SecurityController5 { + + @Autowired + private IAuthenticationFacade authenticationFacade; + + public SecurityController5() { + super(); + } + + // API + + @RequestMapping(value = "/username5", method = RequestMethod.GET) + @ResponseBody + public String currentUserNameSimple() { + final Authentication authentication = authenticationFacade.getAuthentication(); + return authentication.getName(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Foo.java b/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Foo.java new file mode 100644 index 000000000000..09c1dac933fe --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Foo.java @@ -0,0 +1,14 @@ +package org.baeldung.web.dto; + +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class Foo implements Serializable { + + public Foo() { + super(); + } + +} diff --git a/spring-security-rest-template/src/main/resources/logback.xml b/spring-security-rest-template/src/main/resources/logback.xml new file mode 100644 index 000000000000..1146dade632e --- /dev/null +++ b/spring-security-rest-template/src/main/resources/logback.xml @@ -0,0 +1,20 @@ + + + + + web - %date [%thread] %-5level %logger{36} - %message%n + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml new file mode 100644 index 000000000000..3766574f346b --- /dev/null +++ b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/webapp/WEB-INF/api-servlet.xml b/spring-security-rest-template/src/main/webapp/WEB-INF/api-servlet.xml new file mode 100644 index 000000000000..5463820874c8 --- /dev/null +++ b/spring-security-rest-template/src/main/webapp/WEB-INF/api-servlet.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/webapp/WEB-INF/web.xml b/spring-security-rest-template/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..372688c8d87e --- /dev/null +++ b/spring-security-rest-template/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,51 @@ + + + + Spring Security Custom Application + + + + contextClass + + org.springframework.web.context.support.AnnotationConfigWebApplicationContext + + + + contextConfigLocation + org.baeldung.spring + + + + org.springframework.web.context.ContextLoaderListener + + + + + api + org.springframework.web.servlet.DispatcherServlet + 1 + + + api + /api/* + + + + + + springSecurityFilterChain + org.springframework.web.filter.DelegatingFilterProxy + + + springSecurityFilterChain + /* + + + + + + + \ No newline at end of file diff --git a/spring-security-rest-template/src/test/resources/.gitignore b/spring-security-rest-template/src/test/resources/.gitignore new file mode 100644 index 000000000000..83c05e60c802 --- /dev/null +++ b/spring-security-rest-template/src/test/resources/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file From 67844d3320d508bc0e37c007d08066de6df309bb Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 00:54:33 +0300 Subject: [PATCH 200/206] rest template work --- spring-security-rest-template/.classpath | 6 + .../org.eclipse.wst.common.component | 1 + spring-security-rest-template/pom.xml | 516 ++++++++++-------- ...entsClientHttpRequestFactoryBasicAuth.java | 42 ++ .../baeldung/client/RestTemplateFactory.java | 40 ++ .../org/baeldung/spring/ClientConfig.java | 16 + .../org/baeldung/client/ClientLiveTest.java | 26 + 7 files changed, 407 insertions(+), 240 deletions(-) create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java create mode 100644 spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java diff --git a/spring-security-rest-template/.classpath b/spring-security-rest-template/.classpath index 5dea19367768..ca257cf1f962 100644 --- a/spring-security-rest-template/.classpath +++ b/spring-security-rest-template/.classpath @@ -16,6 +16,12 @@ + + + + + + diff --git a/spring-security-rest-template/.settings/org.eclipse.wst.common.component b/spring-security-rest-template/.settings/org.eclipse.wst.common.component index d81a71a7eb1a..7092dce0b65f 100644 --- a/spring-security-rest-template/.settings/org.eclipse.wst.common.component +++ b/spring-security-rest-template/.settings/org.eclipse.wst.common.component @@ -4,6 +4,7 @@ + diff --git a/spring-security-rest-template/pom.xml b/spring-security-rest-template/pom.xml index 51fb1db96d66..768b791119d5 100644 --- a/spring-security-rest-template/pom.xml +++ b/spring-security-rest-template/pom.xml @@ -1,242 +1,278 @@ - - 4.0.0 - org.baeldung - spring-security-rest-template - 0.1-SNAPSHOT - - spring-security-rest-template - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - org.springframework - spring-oxm - ${org.springframework.version} - - - - - - com.fasterxml.jackson.core - jackson-databind - 2.2.2 - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - com.google.guava - guava - ${guava.version} - - - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-rest-template - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - true - source - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 4.2.2.Final - 5.1.25 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 4.2.4 - 4.2.5 - - 1.8.1 - 1.8.9 - - - 1.4.2 - 2.15 - + + 4.0.0 + org.baeldung + spring-security-rest-template + 0.1-SNAPSHOT + + spring-security-rest-template + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + org.springframework + spring-oxm + ${org.springframework.version} + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + + + + + + org.apache.httpcomponents + httpcore + ${httpcore.version} + + + commons-logging + commons-logging + + + + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-logging + commons-logging + + + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest-template + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + true + source + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.3.Final + 5.1.25 + + + 4.2.4 + 4.2.5 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 4.2.4 + 4.2.5 + + 1.8.1 + 1.8.9 + + + 1.4.3 + 2.15 + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java b/spring-security-rest-template/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java new file mode 100644 index 000000000000..5f808413ce8d --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/client/HttpComponentsClientHttpRequestFactoryBasicAuth.java @@ -0,0 +1,42 @@ +package org.baeldung.client; + +import java.net.URI; + +import org.apache.http.HttpHost; +import org.apache.http.client.AuthCache; +import org.apache.http.client.protocol.ClientContext; +import org.apache.http.impl.auth.BasicScheme; +import org.apache.http.impl.client.BasicAuthCache; +import org.apache.http.protocol.BasicHttpContext; +import org.apache.http.protocol.HttpContext; +import org.springframework.http.HttpMethod; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; + +public class HttpComponentsClientHttpRequestFactoryBasicAuth extends HttpComponentsClientHttpRequestFactory { + HttpHost host; + + public HttpComponentsClientHttpRequestFactoryBasicAuth(final HttpHost host) { + super(); + this.host = host; + } + + // + + @Override + protected HttpContext createHttpContext(final HttpMethod httpMethod, final URI uri) { + return createHttpContext(); + } + + private HttpContext createHttpContext() { + // Create AuthCache instance + final AuthCache authCache = new BasicAuthCache(); + // Generate BASIC scheme object and add it to the local auth cache + final BasicScheme basicAuth = new BasicScheme(); + authCache.put(host, basicAuth); + // Add AuthCache to the execution context + final BasicHttpContext localcontext = new BasicHttpContext(); + localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache); + return localcontext; + } + +} \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java b/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java new file mode 100644 index 000000000000..3401d14d852a --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java @@ -0,0 +1,40 @@ +package org.baeldung.client; + +import org.apache.http.HttpHost; +import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +@Component +public class RestTemplateFactory implements FactoryBean, InitializingBean { + private RestTemplate restTemplate; + + public RestTemplateFactory() { + super(); + } + + // API + + @Override + public RestTemplate getObject() { + return restTemplate; + } + + @Override + public Class getObjectType() { + return RestTemplate.class; + } + + @Override + public boolean isSingleton() { + return true; + } + + @Override + public void afterPropertiesSet() { + final HttpHost host = new HttpHost("localhost", 8080, "http"); + restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactoryBasicAuth(host)); + } + +} \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java b/spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java new file mode 100644 index 000000000000..a0c90b51aee1 --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.spring; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("org.baeldung.client") +public class ClientConfig { + + public ClientConfig() { + super(); + } + + // beans + +} \ No newline at end of file diff --git a/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java b/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java new file mode 100644 index 000000000000..be215bf959c4 --- /dev/null +++ b/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java @@ -0,0 +1,26 @@ +package org.baeldung.client; + +import org.baeldung.spring.ClientConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.springframework.web.client.RestTemplate; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { ClientConfig.class }, loader = AnnotationConfigContextLoader.class) +public class ClientLiveTest { + + @Autowired + private RestTemplate restTemplate; + + // tests + + @Test + public final void whenSecuredRestApiIsConsumed_then200OK() { + System.out.println(); + } + +} From 91a244e8e9406c993aad2c192e4dfa220b2f19d3 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 01:03:26 +0300 Subject: [PATCH 201/206] further rest template work --- .../{ => client}/spring/ClientConfig.java | 2 +- .../security/AuthenticationFacade.java | 21 --------- .../CustomAuthenticationProvider.java | 45 ------------------- .../security/IAuthenticationFacade.java | 9 ---- .../web/controller/FooController.java | 4 +- .../web/controller/SecurityController1.java | 39 ---------------- .../web/controller/SecurityController2.java | 25 ----------- .../web/controller/SecurityController3.java | 27 ----------- .../web/controller/SecurityController4.java | 28 ------------ .../web/controller/SecurityController5.java | 30 ------------- .../src/main/resources/webSecurityConfig.xml | 8 +++- .../org/baeldung/client/ClientLiveTest.java | 16 ++++++- 12 files changed, 24 insertions(+), 230 deletions(-) rename spring-security-rest-template/src/main/java/org/baeldung/{ => client}/spring/ClientConfig.java (88%) delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java delete mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java diff --git a/spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java b/spring-security-rest-template/src/main/java/org/baeldung/client/spring/ClientConfig.java similarity index 88% rename from spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java rename to spring-security-rest-template/src/main/java/org/baeldung/client/spring/ClientConfig.java index a0c90b51aee1..73e602855c7e 100644 --- a/spring-security-rest-template/src/main/java/org/baeldung/spring/ClientConfig.java +++ b/spring-security-rest-template/src/main/java/org/baeldung/client/spring/ClientConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.spring; +package org.baeldung.client.spring; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java b/spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java deleted file mode 100644 index 5a3c77b070f3..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/security/AuthenticationFacade.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.baeldung.security; - -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Component; - -@Component -public class AuthenticationFacade implements IAuthenticationFacade { - - public AuthenticationFacade() { - super(); - } - - // API - - @Override - public final Authentication getAuthentication() { - return SecurityContextHolder.getContext().getAuthentication(); - } - -} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java b/spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java deleted file mode 100644 index 4b9b3e8ee926..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/security/CustomAuthenticationProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.baeldung.security; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.security.authentication.AuthenticationProvider; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.User; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Component; - -@Component -public class CustomAuthenticationProvider implements AuthenticationProvider { - - public CustomAuthenticationProvider() { - super(); - } - - // API - - @Override - public Authentication authenticate(final Authentication authentication) throws AuthenticationException { - final String name = authentication.getName(); - final String password = authentication.getCredentials().toString(); - if (name.equals("admin") && password.equals("system")) { - final List grantedAuths = new ArrayList<>(); - grantedAuths.add(new SimpleGrantedAuthority("ROLE_USER")); - final UserDetails principal = new User(name, password, grantedAuths); - final Authentication auth = new UsernamePasswordAuthenticationToken(principal, password, grantedAuths); - return auth; - } else { - return null; - } - } - - @Override - public boolean supports(final Class authentication) { - return authentication.equals(UsernamePasswordAuthenticationToken.class); - } - -} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java b/spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java deleted file mode 100644 index d1223e41cf3a..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/security/IAuthenticationFacade.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.baeldung.security; - -import org.springframework.security.core.Authentication; - -public interface IAuthenticationFacade { - - Authentication getAuthentication(); - -} \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java index ff5a00fd9509..b50edb2dcf2f 100644 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java @@ -3,6 +3,7 @@ import org.baeldung.web.dto.Foo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -10,7 +11,7 @@ import org.springframework.web.bind.annotation.ResponseBody; @Controller -@RequestMapping(value = "/foo") +@RequestMapping(value = "/foos") public class FooController { @Autowired @@ -24,6 +25,7 @@ public FooController() { @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody + @PreAuthorize("hasRole('ROLE_USER')") public Foo findOne(@PathVariable("id") final Long id) { return new Foo(); } diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java deleted file mode 100644 index d06f15af93e0..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController1.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.baeldung.web.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.security.authentication.AnonymousAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class SecurityController1 { - - @Autowired - private ApplicationEventPublisher eventPublisher; - - public SecurityController1() { - super(); - } - - // API - - @RequestMapping(value = "/username1", method = RequestMethod.GET) - @ResponseBody - public String currentUserName() { - final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - if (!(authentication instanceof AnonymousAuthenticationToken)) { - final String currentPrincipalName = authentication.getName(); - System.out.println("Authentication: " + authentication); - System.out.println("Principal: " + authentication.getPrincipal()); - return currentPrincipalName; - } - - return null; - } - -} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java deleted file mode 100644 index ac02738d0cd2..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController2.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.baeldung.web.controller; - -import java.security.Principal; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class SecurityController2 { - - public SecurityController2() { - super(); - } - - // API - - @RequestMapping(value = "/username2", method = RequestMethod.GET) - @ResponseBody - public String currentUserNameSimple(final Principal principal) { - return principal.getName(); - } - -} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java deleted file mode 100644 index fb207b43ddf3..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController3.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.baeldung.web.controller; - -import org.springframework.security.core.Authentication; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class SecurityController3 { - - public SecurityController3() { - super(); - } - - // API - - @RequestMapping(value = "/username3", method = RequestMethod.GET) - @ResponseBody - public String currentUserNameSimple(final Authentication authentication) { - UserDetails userDetails = (UserDetails) authentication.getPrincipal(); - System.out.println("Retrieved user with authorities: " + userDetails.getAuthorities()); - return authentication.getName(); - } - -} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java deleted file mode 100644 index 0434cc5fdc49..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController4.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.baeldung.web.controller; - -import java.security.Principal; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class SecurityController4 { - - public SecurityController4() { - super(); - } - - // API - - @RequestMapping(value = "/username4", method = RequestMethod.GET) - @ResponseBody - public String currentUserNameSimple(final HttpServletRequest request) { - final Principal principal = request.getUserPrincipal(); - return principal.getName(); - } - -} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java deleted file mode 100644 index e1a0c35cc691..000000000000 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/SecurityController5.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.baeldung.web.controller; - -import org.baeldung.security.IAuthenticationFacade; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.Authentication; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -@Controller -public class SecurityController5 { - - @Autowired - private IAuthenticationFacade authenticationFacade; - - public SecurityController5() { - super(); - } - - // API - - @RequestMapping(value = "/username5", method = RequestMethod.GET) - @ResponseBody - public String currentUserNameSimple() { - final Authentication authentication = authenticationFacade.getAuthentication(); - return authentication.getName(); - } - -} diff --git a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml index 3766574f346b..14b432aaef0b 100644 --- a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml @@ -8,13 +8,17 @@ - + - + + + + + \ No newline at end of file diff --git a/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java b/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java index be215bf959c4..c880ddc854eb 100644 --- a/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java +++ b/spring-security-rest-template/src/test/java/org/baeldung/client/ClientLiveTest.java @@ -1,9 +1,16 @@ package org.baeldung.client; -import org.baeldung.spring.ClientConfig; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.impl.client.DefaultHttpClient; +import org.baeldung.client.spring.ClientConfig; +import org.baeldung.web.dto.Foo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -20,7 +27,12 @@ public class ClientLiveTest { @Test public final void whenSecuredRestApiIsConsumed_then200OK() { - System.out.println(); + final HttpComponentsClientHttpRequestFactory requestFactory = (HttpComponentsClientHttpRequestFactory) restTemplate.getRequestFactory(); + final DefaultHttpClient httpClient = (DefaultHttpClient) requestFactory.getHttpClient(); + httpClient.getCredentialsProvider().setCredentials(new AuthScope("localhost", 8080, AuthScope.ANY_REALM), new UsernamePasswordCredentials("user", "userPass")); + + final ResponseEntity responseEntity = restTemplate.exchange("http://localhost:8080/spring-security-rest-template/api/foos/1", HttpMethod.GET, null, Foo.class); + System.out.println(responseEntity.getStatusCode()); } } From ad6923017d3d2b09817697f222143648d20876ee Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 01:05:45 +0300 Subject: [PATCH 202/206] doc work --- spring-security-rest-template/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-security-rest-template/README.md b/spring-security-rest-template/README.md index 3ec8cf92c71a..038b71615fae 100644 --- a/spring-security-rest-template/README.md +++ b/spring-security-rest-template/README.md @@ -1,7 +1,7 @@ ========= -## Spring Security for REST Example Project +## Spring Security with RestTemplate - Example Project ### Relevant Articles: -- [Spring Security Authentication Provider](http://www.baeldung.com/spring-security-authentication-provider) +- [RestTemplate with Basic Authentication in Spring](http://www.baeldung.com/2012/04/16/how-to-use-resttemplate-with-basic-authentication-in-spring-3-1) From a71bba8654a2e313f64d7f6d6bcf86be85a1ac99 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 16:42:47 +0300 Subject: [PATCH 203/206] minor maven cleanup --- spring-security-rest-template/pom.xml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/spring-security-rest-template/pom.xml b/spring-security-rest-template/pom.xml index 768b791119d5..f657b318b1c1 100644 --- a/spring-security-rest-template/pom.xml +++ b/spring-security-rest-template/pom.xml @@ -202,7 +202,7 @@ ${maven-surefire-plugin.version} - + **/*LiveTest.java @@ -264,9 +264,6 @@ 4.11 1.9.5 - 4.2.4 - 4.2.5 - 1.8.1 1.8.9 From 7d17c4dd9d556ea1bbec5ae3f04a5ecdd1e4bd59 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 18:25:32 +0300 Subject: [PATCH 204/206] http work --- .../baeldung/client/RestTemplateFactory.java | 20 +++++++++- .../baeldung/client/RawClientLiveTest.java | 40 +++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java diff --git a/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java b/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java index 3401d14d852a..e8df87524c89 100644 --- a/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java +++ b/spring-security-rest-template/src/main/java/org/baeldung/client/RestTemplateFactory.java @@ -1,6 +1,9 @@ package org.baeldung.client; import org.apache.http.HttpHost; +import org.apache.http.client.HttpClient; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; @@ -34,7 +37,22 @@ public boolean isSingleton() { @Override public void afterPropertiesSet() { final HttpHost host = new HttpHost("localhost", 8080, "http"); - restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactoryBasicAuth(host)); + final HttpComponentsClientHttpRequestFactoryBasicAuth requestFactory = new HttpComponentsClientHttpRequestFactoryBasicAuth(host); + restTemplate = new RestTemplate(requestFactory); + + final int timeout = 5; + final HttpClient httpClient = requestFactory.getHttpClient(); + // - note: timeout via raw String parameters + // httpClient.getParams().setParameter("http.connection.timeout", timeout * 1000); + // httpClient.getParams().setParameter("http.socket.timeout", timeout * 1000); + + // httpClient.getParams().setParameter("http.connection-manager.timeout", new Long(timeout * 1000)); + // httpClient.getParams().setParameter("http.protocol.head-body-timeout", timeout * 1000); + + // - note: timeout via the API + final HttpParams httpParams = httpClient.getParams(); + HttpConnectionParams.setConnectionTimeout(httpParams, timeout * 1000); // http.connection.timeout + HttpConnectionParams.setSoTimeout(httpParams, timeout * 1000); // http.socket.timeout } } \ No newline at end of file diff --git a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java new file mode 100644 index 000000000000..a66be953b98e --- /dev/null +++ b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java @@ -0,0 +1,40 @@ +package org.baeldung.client; + +import java.io.IOException; + +import org.apache.http.HttpResponse; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.DefaultHttpClient; +import org.baeldung.client.spring.ClientConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.AnnotationConfigContextLoader; +import org.springframework.web.client.RestTemplate; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { ClientConfig.class }, loader = AnnotationConfigContextLoader.class) +public class RawClientLiveTest { + + @Autowired + private RestTemplate restTemplate; + + // tests + + @Test + public final void whenSecuredRestApiIsConsumed_then200OK() throws ClientProtocolException, IOException { + final HttpComponentsClientHttpRequestFactory requestFactory = (HttpComponentsClientHttpRequestFactory) restTemplate.getRequestFactory(); + final DefaultHttpClient httpClient = (DefaultHttpClient) requestFactory.getHttpClient(); + httpClient.getCredentialsProvider().setCredentials(new AuthScope("localhost", 8080, AuthScope.ANY_REALM), new UsernamePasswordCredentials("user", "userPass")); + + final HttpResponse response = httpClient.execute(new HttpGet("http://localhost:8080/spring-security-rest-template/api/foos/1")); + final int statusCode = response.getStatusLine().getStatusCode(); + System.out.println(statusCode); + } +} From a830caca39dedbc738a7dbac37ba9c36bc9339a5 Mon Sep 17 00:00:00 2001 From: eugenp Date: Thu, 25 Jul 2013 19:05:28 +0300 Subject: [PATCH 205/206] timeout work --- spring-security-rest-template/pom.xml | 565 +++++++++--------- .../web/controller/FooController.java | 6 + .../src/main/resources/logback.xml | 2 + .../baeldung/client/RawClientLiveTest.java | 29 +- 4 files changed, 317 insertions(+), 285 deletions(-) diff --git a/spring-security-rest-template/pom.xml b/spring-security-rest-template/pom.xml index f657b318b1c1..2176778c975d 100644 --- a/spring-security-rest-template/pom.xml +++ b/spring-security-rest-template/pom.xml @@ -1,275 +1,294 @@ - - 4.0.0 - org.baeldung - spring-security-rest-template - 0.1-SNAPSHOT - - spring-security-rest-template - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - org.springframework - spring-oxm - ${org.springframework.version} - - - - - - com.fasterxml.jackson.core - jackson-databind - 2.2.2 - - - - - - org.apache.httpcomponents - httpcore - ${httpcore.version} - - - commons-logging - commons-logging - - - - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-logging - commons-logging - - - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - com.google.guava - guava - ${guava.version} - - - - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-rest-template - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - true - source - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - **/*LiveTest.java - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 4.2.3.Final - 5.1.25 - - - 4.2.4 - 4.2.5 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 1.8.1 - 1.8.9 - - - 1.4.3 - 2.15 - + + 4.0.0 + org.baeldung + spring-security-rest-template + 0.1-SNAPSHOT + + spring-security-rest-template + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + commons-logging + commons-logging + + + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + org.springframework + spring-oxm + ${org.springframework.version} + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + + + + + + + + + + + + + + + + + + org.apache.httpcomponents + httpcore + ${httpcore.version} + + + commons-logging + commons-logging + + + + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-logging + commons-logging + + + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest-template + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + true + source + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + **/*LiveTest.java + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.3.Final + 5.1.25 + + + 4.2.4 + 4.2.5 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 1.8.1 + 1.8.9 + + + 1.4.3 + 2.15 + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java index b50edb2dcf2f..9b74c79ca804 100644 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java @@ -30,4 +30,10 @@ public Foo findOne(@PathVariable("id") final Long id) { return new Foo(); } + @RequestMapping(value = "/{id}/unsecured", method = RequestMethod.GET) + @ResponseBody + public Foo findOneUnsecured(@PathVariable("id") final Long id) { + return new Foo(); + } + } diff --git a/spring-security-rest-template/src/main/resources/logback.xml b/spring-security-rest-template/src/main/resources/logback.xml index 1146dade632e..90f61a95bc55 100644 --- a/spring-security-rest-template/src/main/resources/logback.xml +++ b/spring-security-rest-template/src/main/resources/logback.xml @@ -7,6 +7,8 @@ + + diff --git a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java index a66be953b98e..76668ab41c2b 100644 --- a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java +++ b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java @@ -3,38 +3,43 @@ import java.io.IOException; import org.apache.http.HttpResponse; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; import org.baeldung.client.spring.ClientConfig; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; -import org.springframework.web.client.RestTemplate; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { ClientConfig.class }, loader = AnnotationConfigContextLoader.class) public class RawClientLiveTest { - @Autowired - private RestTemplate restTemplate; - // tests @Test public final void whenSecuredRestApiIsConsumed_then200OK() throws ClientProtocolException, IOException { - final HttpComponentsClientHttpRequestFactory requestFactory = (HttpComponentsClientHttpRequestFactory) restTemplate.getRequestFactory(); - final DefaultHttpClient httpClient = (DefaultHttpClient) requestFactory.getHttpClient(); - httpClient.getCredentialsProvider().setCredentials(new AuthScope("localhost", 8080, AuthScope.ANY_REALM), new UsernamePasswordCredentials("user", "userPass")); + final DefaultHttpClient httpClient = new DefaultHttpClient(); + + final int timeout = 5; // seconds + final HttpParams httpParams = httpClient.getParams(); + // - note: timeout via raw String parameters + // httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout * 1000); + // httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout * 1000); + // httpParams.setParameter("http.connection-manager.timeout", new Long(timeout * 1000)); + // httpParams.setParameter("http.protocol.head-body-timeout", timeout * 1000); - final HttpResponse response = httpClient.execute(new HttpGet("http://localhost:8080/spring-security-rest-template/api/foos/1")); + // - note: timeout via the API + HttpConnectionParams.setConnectionTimeout(httpParams, timeout * 1000); // http.connection.timeout + HttpConnectionParams.setSoTimeout(httpParams, timeout * 1000); // http.socket.timeout + + final HttpResponse response = httpClient.execute(new HttpGet("http://localhost:8080/spring-security-rest-template/api/foos/1/unsecured")); final int statusCode = response.getStatusLine().getStatusCode(); System.out.println(statusCode); } + } From 1e7f8dc2b0ddd51afcfb5c5e077cbad2e82d52d1 Mon Sep 17 00:00:00 2001 From: eugenp Date: Fri, 26 Jul 2013 01:10:43 +0300 Subject: [PATCH 206/206] http client configuration work --- spring-security-rest-template/pom.xml | 608 +++++++++--------- .../web/controller/BarController.java | 31 + .../web/controller/FooController.java | 6 - .../main/java/org/baeldung/web/dto/Bar.java | 14 + .../src/main/resources/webSecurityConfig.xml | 3 +- .../baeldung/client/RawClientLiveTest.java | 44 +- 6 files changed, 396 insertions(+), 310 deletions(-) create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java create mode 100644 spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java diff --git a/spring-security-rest-template/pom.xml b/spring-security-rest-template/pom.xml index 2176778c975d..b35dca5ec9ea 100644 --- a/spring-security-rest-template/pom.xml +++ b/spring-security-rest-template/pom.xml @@ -1,294 +1,318 @@ - - 4.0.0 - org.baeldung - spring-security-rest-template - 0.1-SNAPSHOT - - spring-security-rest-template - war - - - - - - - org.springframework.security - spring-security-web - ${org.springframework.security.version} - - - org.springframework.security - spring-security-config - ${org.springframework.security.version} - - - - - - org.springframework - spring-core - ${org.springframework.version} - - - commons-logging - commons-logging - - - - - org.springframework - spring-context - ${org.springframework.version} - - - org.springframework - spring-jdbc - ${org.springframework.version} - - - org.springframework - spring-beans - ${org.springframework.version} - - - org.springframework - spring-aop - ${org.springframework.version} - - - org.springframework - spring-tx - ${org.springframework.version} - - - org.springframework - spring-expression - ${org.springframework.version} - - - - org.springframework - spring-web - ${org.springframework.version} - - - org.springframework - spring-webmvc - ${org.springframework.version} - - - - org.springframework - spring-oxm - ${org.springframework.version} - - - - - - com.fasterxml.jackson.core - jackson-databind - 2.2.2 - - - - - - - - - - - - - - - - - - org.apache.httpcomponents - httpcore - ${httpcore.version} - - - commons-logging - commons-logging - - - - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-logging - commons-logging - - - - - - - - javax.servlet - javax.servlet-api - 3.0.1 - provided - - - - javax.servlet - jstl - 1.2 - runtime - - - - - - com.google.guava - guava - ${guava.version} - - - - - - org.springframework - spring-test - ${org.springframework.version} - test - - - - junit - junit-dep - ${junit.version} - test - - - - org.hamcrest - hamcrest-core - ${org.hamcrest.version} - test - - - org.hamcrest - hamcrest-library - ${org.hamcrest.version} - test - - - - org.mockito - mockito-core - ${mockito.version} - test - - - - - - spring-security-rest-template - - - src/main/resources - true - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - true - source - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - **/*LiveTest.java - - - - - - - - - org.codehaus.cargo - cargo-maven2-plugin - ${cargo-maven2-plugin.version} - - true - - jetty8x - embedded - - - - - - - 8082 - - - - - - - - - - - - 3.2.3.RELEASE - 3.1.4.RELEASE - - - 4.2.3.Final - 5.1.25 - - - 4.2.4 - 4.2.5 - - - 1.7.5 - 1.0.11 - - - 5.0.1.Final - - - 14.0.1 - 3.1 - - - 1.3 - 4.11 - 1.9.5 - - 1.8.1 - 1.8.9 - - - 1.4.3 - 2.15 - + + 4.0.0 + org.baeldung + spring-security-rest-template + 0.1-SNAPSHOT + + spring-security-rest-template + war + + + + + + + org.springframework.security + spring-security-web + ${org.springframework.security.version} + + + org.springframework.security + spring-security-config + ${org.springframework.security.version} + + + + + + org.springframework + spring-core + ${org.springframework.version} + + + commons-logging + commons-logging + + + + + org.springframework + spring-context + ${org.springframework.version} + + + org.springframework + spring-jdbc + ${org.springframework.version} + + + org.springframework + spring-beans + ${org.springframework.version} + + + org.springframework + spring-aop + ${org.springframework.version} + + + org.springframework + spring-tx + ${org.springframework.version} + + + org.springframework + spring-expression + ${org.springframework.version} + + + + org.springframework + spring-web + ${org.springframework.version} + + + org.springframework + spring-webmvc + ${org.springframework.version} + + + + org.springframework + spring-oxm + ${org.springframework.version} + + + + + + com.fasterxml.jackson.core + jackson-databind + 2.2.2 + + + + + + + + + + + + + + + + + + org.apache.httpcomponents + httpcore + ${httpcore.version} + + + commons-logging + commons-logging + + + + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-logging + commons-logging + + + + + + + + javax.servlet + javax.servlet-api + 3.0.1 + provided + + + + javax.servlet + jstl + 1.2 + runtime + + + + + + com.google.guava + guava + ${guava.version} + + + + + + org.slf4j + slf4j-api + ${org.slf4j.version} + + + ch.qos.logback + logback-classic + ${logback.version} + + + + org.slf4j + jcl-over-slf4j + ${org.slf4j.version} + + + + org.slf4j + log4j-over-slf4j + ${org.slf4j.version} + + + + + + org.springframework + spring-test + ${org.springframework.version} + test + + + + junit + junit-dep + ${junit.version} + test + + + + org.hamcrest + hamcrest-core + ${org.hamcrest.version} + test + + + org.hamcrest + hamcrest-library + ${org.hamcrest.version} + test + + + + org.mockito + mockito-core + ${mockito.version} + test + + + + + + spring-security-rest-template + + + src/main/resources + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + true + source + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + **/*LiveTest.java + + + + + + + + + org.codehaus.cargo + cargo-maven2-plugin + ${cargo-maven2-plugin.version} + + true + + jetty8x + embedded + + + + + + + 8082 + + + + + + + + + + + + 3.2.3.RELEASE + 3.1.4.RELEASE + + + 4.2.3.Final + 5.1.25 + + + 4.2.4 + 4.2.5 + + + 1.7.5 + 1.0.11 + + + 5.0.1.Final + + + 14.0.1 + 3.1 + + + 1.3 + 4.11 + 1.9.5 + + 1.8.1 + 1.8.9 + + + 1.4.3 + 2.15 + \ No newline at end of file diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java new file mode 100644 index 000000000000..2bc314baa22f --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/BarController.java @@ -0,0 +1,31 @@ +package org.baeldung.web.controller; + +import org.baeldung.web.dto.Bar; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +@RequestMapping(value = "/bars") +public class BarController { + + @Autowired + private ApplicationEventPublisher eventPublisher; + + public BarController() { + super(); + } + + // API + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + @ResponseBody + public Bar findOne(@PathVariable("id") final Long id) { + return new Bar(); + } + +} diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java index 9b74c79ca804..b50edb2dcf2f 100644 --- a/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/controller/FooController.java @@ -30,10 +30,4 @@ public Foo findOne(@PathVariable("id") final Long id) { return new Foo(); } - @RequestMapping(value = "/{id}/unsecured", method = RequestMethod.GET) - @ResponseBody - public Foo findOneUnsecured(@PathVariable("id") final Long id) { - return new Foo(); - } - } diff --git a/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java b/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java new file mode 100644 index 000000000000..d33e39a8233d --- /dev/null +++ b/spring-security-rest-template/src/main/java/org/baeldung/web/dto/Bar.java @@ -0,0 +1,14 @@ +package org.baeldung.web.dto; + +import java.io.Serializable; + +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +public class Bar implements Serializable { + + public Bar() { + super(); + } + +} diff --git a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml index 14b432aaef0b..fa64cf242ade 100644 --- a/spring-security-rest-template/src/main/resources/webSecurityConfig.xml +++ b/spring-security-rest-template/src/main/resources/webSecurityConfig.xml @@ -7,7 +7,6 @@ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> - @@ -21,4 +20,6 @@ + + \ No newline at end of file diff --git a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java index 76668ab41c2b..f849eda492f3 100644 --- a/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java +++ b/spring-security-rest-template/src/test/java/org/baeldung/client/RawClientLiveTest.java @@ -1,11 +1,15 @@ package org.baeldung.client; import java.io.IOException; +import java.util.Timer; +import java.util.TimerTask; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.params.ClientPNames; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.params.CoreConnectionPNames; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.baeldung.client.spring.ClientConfig; @@ -25,21 +29,39 @@ public class RawClientLiveTest { public final void whenSecuredRestApiIsConsumed_then200OK() throws ClientProtocolException, IOException { final DefaultHttpClient httpClient = new DefaultHttpClient(); - final int timeout = 5; // seconds + final int timeout = 20; // seconds final HttpParams httpParams = httpClient.getParams(); - // - note: timeout via raw String parameters - // httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout * 1000); - // httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout * 1000); - // httpParams.setParameter("http.connection-manager.timeout", new Long(timeout * 1000)); - // httpParams.setParameter("http.protocol.head-body-timeout", timeout * 1000); + configureViaRawApi(timeout, httpParams); + // configureViaHighLevelApi(timeout, httpParams); - // - note: timeout via the API + final HttpGet getMethod = new HttpGet("http://localhost:8080/spring-security-rest-template/api/bars/1"); + + final int hardTimeout = 5; // seconds + final TimerTask task = new TimerTask() { + @Override + public void run() { + if (getMethod != null) { + getMethod.abort(); + } + } + }; + new Timer(true).schedule(task, hardTimeout * 1000); + + final HttpResponse response = httpClient.execute(getMethod); + System.out.println("HTTP Status of response: " + response.getStatusLine().getStatusCode()); + } + + // util + + final void configureViaHighLevelApi(final int timeout, final HttpParams httpParams) { HttpConnectionParams.setConnectionTimeout(httpParams, timeout * 1000); // http.connection.timeout HttpConnectionParams.setSoTimeout(httpParams, timeout * 1000); // http.socket.timeout - - final HttpResponse response = httpClient.execute(new HttpGet("http://localhost:8080/spring-security-rest-template/api/foos/1/unsecured")); - final int statusCode = response.getStatusLine().getStatusCode(); - System.out.println(statusCode); + httpParams.setParameter(ClientPNames.CONN_MANAGER_TIMEOUT, new Long(timeout * 1000)); } + final void configureViaRawApi(final int timeout, final HttpParams httpParams) { + httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout * 1000); + httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout * 1000); + httpParams.setParameter(ClientPNames.CONN_MANAGER_TIMEOUT, new Long(timeout * 1000)); + } }