diff --git a/.gitignore b/.gitignore
index 210807d09e..7ebd658281 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
.settings/
.prefs
*.prefs
+.metadata/
# Intellij
.idea/
@@ -23,3 +24,4 @@ log/
target/
spring-openid/src/main/resources/application.properties
+.recommenders/
diff --git a/dependency-injection/.gitignore b/dependency-injection/.gitignore
new file mode 100644
index 0000000000..6531dfc93f
--- /dev/null
+++ b/dependency-injection/.gitignore
@@ -0,0 +1,12 @@
+RemoteSystemsTempFiles/
+.classpath
+.project
+.settings/
+bin/
+.metadata/
+docs/*.autosave
+docs/*.autosave
+.recommenders/
+build/
+.gradle/
+.DS_Store
diff --git a/dependency-injection/build.gradle b/dependency-injection/build.gradle
new file mode 100644
index 0000000000..968636154d
--- /dev/null
+++ b/dependency-injection/build.gradle
@@ -0,0 +1,43 @@
+apply plugin: 'java'
+apply plugin: 'eclipse'
+
+allprojects {
+ apply plugin: 'java'
+ sourceCompatibility = 1.6
+ targetCompatibility = 1.6
+}
+
+repositories {
+ mavenCentral()
+}
+
+sourceSets {
+ main {
+ resources.srcDirs = ["src/main/java","src/main/resources"]
+ }
+ test {
+ resources.srcDirs = ["src/main/java", "src/main/resources", "src/test/resources"]
+ }
+}
+
+configurations {
+ compile
+}
+
+test {
+ testLogging {
+ events 'started', 'passed'
+ }
+}
+
+dependencies {
+ testCompile('junit:junit:4.11')
+ testCompile('org.mockito:mockito-all:1.10.19')
+ testCompile group: 'org.springframework', name: 'spring-test', version: '4.2.6.RELEASE'
+ testCompile group: 'org.springframework', name: 'spring-core', version: '4.2.6.RELEASE'
+ testCompile group: 'org.springframework', name: 'spring-beans', version: '4.2.6.RELEASE'
+ testCompile group: 'org.springframework', name: 'spring-context', version: '4.2.6.RELEASE'
+ testCompile group: 'javax.inject', name: 'javax.inject', version: '1'
+
+ testRuntime('junit:junit:4.11')
+}
diff --git a/dependency-injection/docs/autowired-name-demo-classdiagram.png b/dependency-injection/docs/autowired-name-demo-classdiagram.png
new file mode 100644
index 0000000000..f367fdbf41
Binary files /dev/null and b/dependency-injection/docs/autowired-name-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/autowired-type-demo-classdiagram.png b/dependency-injection/docs/autowired-type-demo-classdiagram.png
new file mode 100644
index 0000000000..5f3f341556
Binary files /dev/null and b/dependency-injection/docs/autowired-type-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/autowired-type-demo-classdiagram.xml b/dependency-injection/docs/autowired-type-demo-classdiagram.xml
new file mode 100644
index 0000000000..71dc839457
--- /dev/null
+++ b/dependency-injection/docs/autowired-type-demo-classdiagram.xml
@@ -0,0 +1 @@
+7Vjvb+I4EP1rkO4+7KkhhW0/8qt3J3V1Velq7z5VbmKIb50M55hS9q/fGXtMEgLXrprthwqEEH6ZOJ5573nAvXiSP/1uxCr7BKnUvf5Z+tSLp71+/6If4ycBWw8MBpceWBqVeiiqgLn6Jhk8Y3StUlk2Ai2AtmrVBBMoCpnYBiaMgU0zbAG6+dSVWIYnVsA8EbqNflGpzUJawwr/Q6plFp4cDTm/B5F8XRpYF/y8Xj9euJe/nIswFydaZiKFTQ2KZ1hWA4Az07f8aSI1lTaUzd93deTqbt1GFry2Z24I67DbkLtMsRQ8BGMzWEIh9KxCxy4/STOc4SizucavEX7Fh5rt34y7wT80+G3ghumImKFZV7K4y1Th0SuFK/K3/Cut3bIaxNoCQtUKrgFW/By/Zlro0bQZKmFtEo7CsROSMEvJUR93JUclS8glLhlDjNTCqsfm7II1tdzF8a2YlqC7QsAKVGHL2sw3BGAAuyO6HPgZ2Rz9yC0jcIRf/IxhVFtaBTkeD3PKeT4KveYMrpTU6QgLulFGplOZQ4v1cqNyLQqit0boAgobtEBjodUSaZsmWGdpEHiUxir0zYgvWOJonGRKp9diC2uqc2nRFGE0zsCobzitCM/Ay8Yy6WiwesSc7mRtGFlizE2gmO700LUoCaCYBLQWq1I97BacI9mqGIO1kHNQyJR0NwENmAYWINg0iIsSk4GwI/JqC4dvCO5mgmNmZFNtJfGAQ7LaNnJ5cVxpNXX8L/m88dbI/0AbIAlgKtF3qSwSXNYIwZF5UNYIs61d2JcF1sCRVkmitAa+ylC4ApxkFrVaMhSkouWCZjgslHIlElUsr13M9LxCbrkqBG0yZeUccVrTBvsNbQs430K73SRTKa7dbUtWWOG5J6LZh5jHYIxvLPiEtqIB5jXBMVIYxvimcGMnUGB+guwaTyUKayNJXC/ThGO5rYngcu4dz4kgxL1GBOctEbSI1Wrf657Y0O6c+3+Y1Ry5cC2CabxzW/YHN32D6rhNNUH7FGrxIPUNlMoqoPmNj92j9g3YG7zQwh04mJtDgzxMYd/D958+z+/ux7P70ee7v778eTub3k/AGPw1pNnfj4BTngz9syQxZPrfwtA8RU0TL9m8Tz29w54+PG829egje73GfxQ00ejqjL2Gf/8Dcb+ru93Re31uDZrs5PZXuN157Efa90G2u3A7C+vUvjtj70D7PsheB+2bDwJa7duC9+gvv54c+yacH+jPP82xEa+uxvqt/G+N/7bdOcAzDLued7SOVCo6DKG+uNeyX0I1e5h47aALRhfNLrj7q1ur8sEid9AEo/bBRjjleSfVHfJJ0O43xiWPa9UNley8uu2Tg3dW3eiCBRSqG/Nfre6ri8PqDNcf4VXn5PHsOw==
\ No newline at end of file
diff --git a/dependency-injection/docs/inject-demo-classdiagram.png b/dependency-injection/docs/inject-demo-classdiagram.png
new file mode 100644
index 0000000000..9996fdc733
Binary files /dev/null and b/dependency-injection/docs/inject-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/inject-field-demo-classdiagram.png b/dependency-injection/docs/inject-field-demo-classdiagram.png
new file mode 100644
index 0000000000..e63b6e5f42
Binary files /dev/null and b/dependency-injection/docs/inject-field-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/inject-field-demo-classdiagram.xml b/dependency-injection/docs/inject-field-demo-classdiagram.xml
new file mode 100644
index 0000000000..147c545a2d
--- /dev/null
+++ b/dependency-injection/docs/inject-field-demo-classdiagram.xml
@@ -0,0 +1 @@
+7Vhdb9s4EPw1fuwhtqK0eYw/ctdDeijqHO7uyWAkWmJLcX0UFcf99d2llpZkKUiKOHkobBiGOVx+zcxybY2iWfHwuxWb/BOkUo8mZ+nDKJqPJpMPkwg/CdjVQBxf1kBmVVpD4wZYqu+SwTNGK5XKshPoALRTmy6YgDEycR1MWAvbbtgadHfVjcjCig2wTITuo/+o1OXhWBcN/odUWR5WHl/w+e5E8i2zUBlebzSJ1v5VdxcizMUHLXORwrYFRQuk1QLgzPSteJhJTdQG2upx14/07vdtpeG9PTEg7MPtwtllilRwE6zLIQMj9KJBp/58kmY4w1buCo1fx/gVF7W7fxn3jf+o8Vvsm+kVKUOzbqS5zZWp0WuFO6qHfJXO7dgNonKAULODG4ANr1PvmTb66LEZKqGyCUdh2xtJ2Exy1Ps95ehkCYXELWOIlVo4dd+dXbCnsn1cwyt+YWqHaeal74WueNJrJXX60XxF985lAT0Vyq0qtDBEd4vgNRgXtKG20CpDGucJnltaBO6ldQp9fMUdjjibJrnS6Y3YQUXnLh2aNLSmOVj1HacVYQ3sto5FQMO3I5Y0krWyssSYz4FyGllDN6IkgGIS0FpsSnW333CB5CszBeeg4KBwUvLBDDTgMZCAkDZBbDqY5OvlMbn7QoYB7HK+jUJz26R2FDOWt9P6gsGXSM83YUv6d9TrlR/PJaZCKk2CO7tC+MreKWeF3bU6Dp2BNHjdGleUzsI3Gbgz4F2zbtHJUHCLlmuaYdgr5UYkymQ3PmZ+3iBfmBiCtrlycok47WmLJYAyFedba5/guUpx7/6mcMKJWn7SegPKOE9mPMU30juj2yHGc82wjSqGNr4p3LoZGDyfwHE4TKK3tpL89Txb+Lzr24J9EK7zp3wQ4l5ig/OeDXrCanWY7rWwoQL5C+CnVS1QC39rs4y3/hZ956fvSB31pSboUEIt7qT+DKVyCmh+W8ceSPsG6sXM4FPqfXi5ePGAeHiEszVd4k2qrj79vbxdTRerj3/9uZjdLuarZZUksizXldac4feAk55S+rVMEW7st0hpnqLliudc36fCfsTCHr/vVvaIk70l/76It+W/PEJh978de4XdX491qi+dxRw7JfsLkt2n2M/U70G1j5HsbKxT/T6aegP1e1C9I9Rv/nPeq98OOEdP+foWig8U51fL1zHvrqX5F/l/pbCUPUNhX/Ae5ZGooscTVBQP6vVzpOYMJl2PUALPw88bJvmS/3C2SB7k+AgVcNx/rBEeu/wi5EYHvy8u+hUnEHl0cvsPDn4xcuMD58avRi42m0eqvq/12Dpa/AA=
\ No newline at end of file
diff --git a/dependency-injection/docs/inject-name-demo-classdiagram.png b/dependency-injection/docs/inject-name-demo-classdiagram.png
new file mode 100644
index 0000000000..96a6a3425e
Binary files /dev/null and b/dependency-injection/docs/inject-name-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/inject-name-demo-classdiagram.xml b/dependency-injection/docs/inject-name-demo-classdiagram.xml
new file mode 100644
index 0000000000..5a8bb9f8c4
--- /dev/null
+++ b/dependency-injection/docs/inject-name-demo-classdiagram.xml
@@ -0,0 +1 @@
+7VhZbxs3EP41AtqHFDqydvOoy20KJwgiF2meDHp3pGXC5ahcyrLy6zPkDrWnYQVe5yGQIAjit8Njvm8OiYPJPHv4y4ht+g4TUIPxMHkYTBaD8fjP8YQ+HXAogCh6UwAbI5MCGpXASn4DBoeM7mQCec3QIiort3UwRq0htjVMGIP7utkaVX3XrdiEHUtgFQvVRj/JxKbBrYsS/xvkJg07jy7YvzsRf90Y3GnebzCerP2reJyJsBY7mqciwX0FmiyJVoNIK7tv2cMclKM20FbMu3rk6fHcBjSf7YkJ4Rz2EHyHhKjgIRqb4ga1UMsSnXn/wK0wpFFqM0VfR/SVNjWH/xj3g89u8Efkh8nUKeNW3YK+SaUu0CtJJyqmfAFrDxwNYmeRoPIE14hb3qc4szvoo24zlOPOxGxFYx9IwmyArS6PlFMkA2ZARyYTA0pYeV9fXXBMbY52Ja/0hantppm3vhdqx4teSVDJ7PBeZPBWf6EYXkCGLS3yvcyU0I70Cs1r1DYo5MZCyQ2RuYjJezAE3IOxkqJ5yg+sY24Wp1Il1+KAO+d9bilUw2iWopHfaFkR9qDHxrIUFPZVi5WbyYoZyMnmQyDezSyga5E7wNnEqJTY5vLueOCMJJB6htZixkbBUxcNc1RIbhABIXmC5M4x4CLzmOhtOUNVKiZwSQqRvy/ze3LJOqWV3H7Dds+Rn6thRf5XNNSkfbIASoYEdEzHmhI4NXfSGmEOlQfNqCAKvGZlROTW4FcIvGn0EbOuUMlQiBQFa7dCd5zkWxFLvbn2NovXJfKRWXHQPpUWVoS7M+2pCbhcpfXWyqd4KhM6u68VVlhRSO903qLU1lMZzehN5M5dfYjIrzmNScEwprczN3aOmvwTNI+mAcXVHlxsnRYSXtF2SHAQhIL+VBAEu+cEwetWELSEVbKZ6oWwoQf55P9hVTPSwtdtlvHG19FXfvma1JO21A5qSqjEHagPmEsr0a1vCtuGtD9BvYgZfEo9TvzniBd1iEcuNHP49t2/q5vb2fL27ft/lvOb5eJ2jsZQdVec3itriN1zRr9YTFycWNb7yGheohIUn8FONdoUzCl1/Nzde+zuUWjUob+P2rX9+LO71uC5Oz8nEvzvyFaD94XynPc95b2X80c6eafafeQ995NzJ+9NvY5O3qleD52c/6i3OrnFIkd/+/2csT9F845O/WIZO+LTVVT/CP/vJHWzExT2Pe9RHh1V7rLC9cVGyz5Fas5hp2sPXXDU7IIRp0yF5UB8jeQe/uWO2rcc4RbmF2E3umywe9FRt16K3fYlwi/G7njYYHfY0dP7YZeG5R2rf1a5x54svwM=
\ No newline at end of file
diff --git a/dependency-injection/docs/inject-qualifier-demo-classdiagram.png b/dependency-injection/docs/inject-qualifier-demo-classdiagram.png
new file mode 100644
index 0000000000..1ffe6453cb
Binary files /dev/null and b/dependency-injection/docs/inject-qualifier-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/inject-qualifier-demo-classdiagram.xml b/dependency-injection/docs/inject-qualifier-demo-classdiagram.xml
new file mode 100644
index 0000000000..ec122afe71
--- /dev/null
+++ b/dependency-injection/docs/inject-qualifier-demo-classdiagram.xml
@@ -0,0 +1 @@
+7Vptb+I4EP41le4+bEUIUPZjeenenrqn3tLT3X6qTGIS7zox5zil7K/fcTLTvHbhFOAkBEKAx87EM88zL7G4cqfRywfN1uEn5XN51e/5L1fu7KrfH/dd+LSCbS4Y9VAQaOHnIqcQLMR3jsIeSlPh86Sy0CgljVhXhZ6KY+6ZioxprTbVZSslq3dds4DuWAgWHpNN6d/CNyGZNSrkv3ERhHRnZ/Q+n1ky71ugVRrj/a767ip75dMRI11oaBIyX21KIncObtVKgWb7K3qZcmldS27Lr7t7Y/Z135rHuLcdF9A+zJZs5z64AodKm1AFKmZyXkgnmX3caujBKDSRhJ8O/ISb6u0/KM8GX+zgepgN/VuLjNW65vFjKOJceidgR/klX7kxW2QDS40CUbGDe6XWeJ+mlWh4olLtoR0wznjDdMBx1U0ushaWLkPPfOAq4rBlWKC5ZEY8V8nAkFPB67rCr/ADXdvuZtzLM5MpKr0TXPp/pkyKleD6Y/wVaDzjkWrAkWxEJFls/V7y9ErFhkCyY9ATgD9nHniEaxA8c20EEPoWJ4x13sQLhfTv2Val1iOJAbbSaBIqLb6DWkb3gGltEA1gfnnFwl6JoGmewJoHAsNemYvuWWIFdo2npGTrRCxfNxwBLCKeKGNUhIvIUkuIqZIKzAAHUPz8BHVrK8fU8waiNIt0x7REw00R4+4NysJKfKOwCwcwA5Y48M5mSL5iqQToISZ8Hnuws1sQ3+qlMJrpbWmiP5IWJ188w8/A/gQFIxZZYONlkn2xiPs1XdUVP1EMBpR0N4gILs5oUpAwMVp94wRVrDKSrkrooYjIKfnKaminZrJmnoiD+2zNbFBIPiMOVrQJheELkNs9baD02AwB+lYySyyh8MGiLEMZZljONkuttRKxybAbTuANaE5tVhqCXVMYA2loDG+7XJupisE+BtfBZRyovOGWzi0spODezUKkHZWRXbQbDLqzDlWUWNcAVop6dsmBpcqX5Zv/jGoEWGTVAmF8zLL3u0x9BWq3CbUV1SGUbMnlg0qEEcrq1/naGrQnQI+Q2oXeuDt4DhLlDKvzsFmdHYTi9OUZN1MJEjCjB6VZltLp06e/Fo9Pk/nTxz9+n08f57OnRep5PElWqZTbX37NU/ezArWX5Lln+HUt4WPs6XZFo4vltwtNMBpLNGmtppcG7ngN3IgenKiDQ1hL8DujFvjfH6CBQ6bVGrisLuWRvzAaQu4S+/vGPsVTl8apFW1a1wVtLN+Xxulg6A3Rg7vQO0DjhKcxjYJuVB6jVKsvEXtkzAnfU0Ssg23cobvl6xuoMqWO2bnuuWMSPHAtYKe2ZGNf/dpIL6WyNfaYXbRDh6OlNhq5f/oumjZT7o9iZUKuL23Siduk4bjaJrmDZhz2e20nXSTsRITmceelU+r2lLQ/A95ulVoBP0jibR5tXnqljvi1NEut+B3ilKntjPDSLf0fUdvSLh0vapvPs5/5v6mAorYHxFnpe9OR1le2ubHlsVa598Eaw9gCe4BiOKgXw2Zotbakh6iEzafIM/XxsObj8Qmd3Hzao1b5TLzr0vEVpYnmoSc58tDOJR3n69xhzbkt6eFozm0+MZ0bc2u516FgPYV3m48h50ZdSqlE3eHRvAvD4l9J2Vzpn1/u/Ac=
\ No newline at end of file
diff --git a/dependency-injection/docs/resource-demo-classdiagram.png b/dependency-injection/docs/resource-demo-classdiagram.png
new file mode 100644
index 0000000000..1f0a41a19e
Binary files /dev/null and b/dependency-injection/docs/resource-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/resource-field-demo-classdiagram.png b/dependency-injection/docs/resource-field-demo-classdiagram.png
new file mode 100644
index 0000000000..0d6207d09a
Binary files /dev/null and b/dependency-injection/docs/resource-field-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/resource-field-demo-classdiagram.xml b/dependency-injection/docs/resource-field-demo-classdiagram.xml
new file mode 100644
index 0000000000..44c742f2bc
--- /dev/null
+++ b/dependency-injection/docs/resource-field-demo-classdiagram.xml
@@ -0,0 +1 @@
+7Vhtb+I4EP41SHcftgICtP1YoN1bqXtalZ7u7lPlJiZx1/HkHANlf/3OOGOSEPpyonfaOxUhFD8ejz3zzItDL5rljx+tKLLPkEjdG/aTx1407w2HZ8MIfwnYVsB4fF4BqVVJBQ1qYKG+SQb7jK5UIsuWoAPQThVtMAZjZOxamLAWNm2xJej2roVIw441sIiF7qK/q8RlwaxJjf8iVZqFnQcTtu9exF9TCyvD+/WG0dJ/qulcBF1saJmJBDYNKLpEt1oA1ExP+eNManJtcFu17uqJ2d25rTR8tucX4BQtWAu9YtN7w4nGpdMCH1J6uFJSJzeyhJWN5SfzgP5WYOYyhyCK6nfSbJbbBleWG5VrYXA0zVyuERzg4xKMW7AQjYVWqcHnGM8tLQJraZ1CQi54wkGBaJwpnVyLLazIutKht8NomoFV31CtCHvgtHUcW6PzlsSCViLcR9TKEmW+BJfRygq6FiUBJBOD1qIo1f3uwLmwqTJTcA5yFgqWXimtZ6ABzUAHBP6Da5rcMF1kq+TU8RBz9VFCLp3dokiY5bDhtBpxmm3qGI1GLJI14/OUBQXnRbrTXMcGPnB4HA4VVtEIlQ+U4XIpVtqhzQheIPAg1uJEwYlH9oMBzfRU1YFQOgtfZXCXAR8oy4YHGQoBouWSNBwOj7IQsTLptZeZj2rkhn1B0CZTTi4QpzNtsHwhBqhvqX0iZipJJKqcWnDCiYpxorcAZZz333iKX3TzrH8y7o3RrhmOkbgwxi+JWzcDg/YJXIfLJIbTRlJIHYiEkIcvR0KgngvOS9RHXLKOYX50oEjsEavVfoZXxIbq6XP+b7OaIxe0Q6Dxllief/DqW1RHXaoJ2qdQi3upv0CpqIIhZivZPWr/BfbOxq9j7+x48ninFnloQr/QaFko6xfGkKvQK3eff1vc3l19+nV+N69T+6efq+ReA6p9T+p/KizOX1nPx4wdExennbh4tnL/GG0cL2A/SBvvkHqgsz/Zxk/77T4+CNfBBvGDyaF6wCF1DPHcON6reTNtX6DTJ8uTaRteC15ib8SN9KhbGJ+uwZZM8N2Fh2hoBikYoS9rFD2HLySSNJDfGrSigXb7B+N+8CcNsOLRMLmgVynSWkhzmykqoIhSYvCSB+nclnNTrBxQ1d2d4Bo8wbRPdWY66PMZg3b5ftS6cWL+p/J5IqzU2L3Wbe1Hubn7YnQj/1opLCmv6H++8DzZZSgiyVlUnPbq5msaIacNdb03KEXjvVeKwaQbzIdiOVSso5zcfaXoRvd/2rtR6NTh3te9tQdHvrlzu7f2/5lzJ6fszRC6I1bx9t7FYf2fjJ9r/O8VXX4H
\ No newline at end of file
diff --git a/dependency-injection/docs/resource-method-byname-demo-classdiagram.png b/dependency-injection/docs/resource-method-byname-demo-classdiagram.png
new file mode 100644
index 0000000000..c5cd0c0fcb
Binary files /dev/null and b/dependency-injection/docs/resource-method-byname-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/resource-method-demo-classdiagram.png b/dependency-injection/docs/resource-method-demo-classdiagram.png
new file mode 100644
index 0000000000..6be7dbbeea
Binary files /dev/null and b/dependency-injection/docs/resource-method-demo-classdiagram.png differ
diff --git a/dependency-injection/docs/resource-method-demo-classdiagram.xml b/dependency-injection/docs/resource-method-demo-classdiagram.xml
new file mode 100644
index 0000000000..94b39279fc
--- /dev/null
+++ b/dependency-injection/docs/resource-method-demo-classdiagram.xml
@@ -0,0 +1 @@
+3Vhbb+I6EP41SN0HECGQbh8boNuutkerltXZ84QMcRL3OHFqHAr99R0749y4qCpdqV0eQvx5PJ755mJDxx0nm2+SZPGtCCjvDPrBpuNOOoPB14ELTw1sC2A0uiiASLKggJwKuGfPFME+ojkL6KohqITgimVNcCnSlC5VAyNSiqemWCh4c9eMRHbHCrhfEr6L/ssCFVu3vAq/piyK7c6Oh/4tyPL/SIo8xf06Azc0n2I6IVYXOrqKSSCeapA7BVqlEKBZvyWbMeWaWktbse7qwGxpt6Qp2nZ8ATq0UlvrOg2ACRwKqWIRiZTwaYX6xj2qFfRhFKuEw6sDr7Cn3P5G3Az+04PeyAyDSx0YrTWj6SxmaYFeMTCoWPJAldpiMpBcCYAqC34IkeE+hc3a0INeI7QSuVyiFKakIjKiKDUqGYdEpiKhYDKISMqJYuumdoIpFZVyFa3wgsweCAtGe014jlrv6GPOJOR4m39FN2BdnVaQYs9kYQQ0TZlgqTLWjPzOaAII4SwCOidL8J9KANZUKgbpfIkTCQsCEztOFpT7ZZKOBRcgD/vaNLXsag0Uy7lZbGhJlcN13k0+7TKKivo9DAK2he6wGL6acNT8UzNQqe2CeE2r01IgwnAFEW/HqzTvVSFEw2sR7Aw8riOVNeLnPea6dv0E0kyn+CXM9rMNPA210AE03lU6mfXcsDanQ9/FWOo5DGepE94i/DY7LyxwS6FKgjtapPtN+gBhYiKd0ERYWfCvFC/Xa90NBKTAnSYWg1QfMrDpH3B8yKw3EcJpCFIlI23dXX2Y0JDkXEHDAM1a8oGsSY+JnkHe2QMLaIwkECw/Xaz0l5VZZSTd6yhnKe3GeDpoM52ezpXWVjVn5re/7mdzfzq/+ef7dDybTuZjISWEkEPOl14V+zXtPNGGsy/F5FpAlh/faR+tO8CJ5hwh+6j/BQYlPqk4PavnxlvdbHXmdlM1NVz23iKBfQFSITfnXGhONj8UqcJDzYEOZsZXJGEQXXdyTfmaaq3Nln+wB++ccQd7rWPbM3ZFF4dP1X3G7SNmQ2PWnSN4yoFnDtaP2i0PtI2d9vhhm+En7N+vNflTl5xna8xeRIa7Ned4e2ru4h1K7nyn5Owd+MS7JVzEMXv0ghb3+wMErXXJ0mhmbuxwyXsXdodavsbuBTaZGrm25dW5tdgp3OKPu7+XW8/emW3men+MXBhWP2+Li3j1F4I7fQE=
\ No newline at end of file
diff --git a/dependency-injection/pom.xml b/dependency-injection/pom.xml
new file mode 100644
index 0000000000..46f57e512e
--- /dev/null
+++ b/dependency-injection/pom.xml
@@ -0,0 +1,81 @@
+
+
+ 4.0.0
+
+ com.baeldung
+ dependency-injection
+ 0.0.1-SNAPSHOT
+ war
+
+ @Resource vs @Inject vs @Autowired
+ Accompanying the demonstration of the use of the annotations related to injection mechanisms, namely @Resource, @Inject, and @Autowired
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+ org.mockito
+ mockito-all
+ 1.10.19
+
+
+ org.springframework
+ spring-test
+ 4.2.6.RELEASE
+
+
+ org.springframework
+ spring-core
+ 4.2.6.RELEASE
+
+
+ org.springframework
+ spring-beans
+ 4.2.6.RELEASE
+
+
+ org.springframework
+ spring-context
+ 4.2.6.RELEASE
+
+
+ javax.inject
+ javax.inject
+ 1
+
+
+
+
+
+
+ maven-compiler-plugin
+
+ 1.6
+ 1.6
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*Demo.java
+
+
+
+
+
+
+
+
+ java.net
+ https://maven.java.net/content/repositories/releases/
+
+
+
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredDemo.java b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredDemo.java
new file mode 100644
index 0000000000..c71365097f
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredDemo.java
@@ -0,0 +1,27 @@
+package com.baeldung.autowired;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+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 com.baeldung.dependency.ArbitraryDependency;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Autowired-Type.xml"})
+public class FieldAutowiredDemo {
+
+ @Autowired
+ private ArbitraryDependency fieldDependency;
+
+ @Test
+ public void fieldDependency_MUST_BE_AUTOWIRED_Correctly() {
+ assertNotNull(fieldDependency);
+ assertEquals("Arbitrary Dependency", fieldDependency.toString());
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameDemo.java b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameDemo.java
new file mode 100644
index 0000000000..c11ed5286a
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/autowired/FieldAutowiredNameDemo.java
@@ -0,0 +1,27 @@
+package com.baeldung.autowired;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+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 com.baeldung.dependency.ArbitraryDependency;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Autowired-Name.xml"})
+public class FieldAutowiredNameDemo {
+
+ @Autowired
+ private ArbitraryDependency autowiredFieldDependency;
+
+ @Test
+ public void autowiredFieldDependency_MUST_BE_AUTOWIRED_Correctly() {
+ assertNotNull(autowiredFieldDependency);
+ assertEquals("Arbitrary Dependency", autowiredFieldDependency.toString());
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredDemo.java b/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredDemo.java
new file mode 100644
index 0000000000..5afce6ab6a
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/autowired/FieldQualifierAutowiredDemo.java
@@ -0,0 +1,39 @@
+package com.baeldung.autowired;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.baeldung.dependency.ArbitraryDependency;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Autowired-Qualifier.xml"})
+public class FieldQualifierAutowiredDemo {
+
+ @Autowired
+ @Qualifier("autowiredFieldDependency")
+ private ArbitraryDependency fieldDependency1;
+
+ @Autowired
+ @Qualifier("anotherAutowiredFieldDependency")
+ private ArbitraryDependency fieldDependency2;
+
+ @Test
+ public void fieldDependency1_MUST_BE_AUTOWIRED_Correctly() {
+ assertNotNull(fieldDependency1);
+ assertEquals("Arbitrary Dependency", fieldDependency1.toString());
+ }
+
+ @Test
+ public void fieldDependency2_MUST_BE_AUTOWIRED_Correctly() {
+ assertNotNull(fieldDependency2);
+ assertEquals("Another Arbitrary Dependency", fieldDependency2.toString());
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/dependency/AnotherArbitraryDependency.java b/dependency-injection/src/test/java/com/baeldung/dependency/AnotherArbitraryDependency.java
new file mode 100644
index 0000000000..27ba03f6e8
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/dependency/AnotherArbitraryDependency.java
@@ -0,0 +1,10 @@
+package com.baeldung.dependency;
+
+public class AnotherArbitraryDependency extends ArbitraryDependency {
+
+ private final String label = "Another Arbitrary Dependency";
+
+ public String toString() {
+ return label;
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/dependency/ArbitraryDependency.java b/dependency-injection/src/test/java/com/baeldung/dependency/ArbitraryDependency.java
new file mode 100644
index 0000000000..bab289777c
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/dependency/ArbitraryDependency.java
@@ -0,0 +1,10 @@
+package com.baeldung.dependency;
+
+public class ArbitraryDependency {
+
+ private final String label = "Arbitrary Dependency";
+
+ public String toString() {
+ return label;
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java b/dependency-injection/src/test/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
new file mode 100644
index 0000000000..1f59500ec5
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/dependency/YetAnotherArbitraryDependency.java
@@ -0,0 +1,10 @@
+package com.baeldung.dependency;
+
+public class YetAnotherArbitraryDependency extends ArbitraryDependency {
+
+ private final String label = "Yet Another Arbitrary Dependency";
+
+ public String toString() {
+ return label;
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectDemo.java b/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectDemo.java
new file mode 100644
index 0000000000..a670ee8313
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/inject/FieldByNameInjectDemo.java
@@ -0,0 +1,30 @@
+package com.baeldung.inject;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.baeldung.dependency.ArbitraryDependency;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Inject-Name.xml"})
+public class FieldByNameInjectDemo {
+
+ @Inject
+ @Named("yetAnotherFieldInjectDependency")
+ private ArbitraryDependency yetAnotherFieldInjectDependency;
+
+ @Test
+ public void yetAnotherFieldInjectDependency_MUST_BE_INJECTED_Correctly() {
+ assertNotNull(yetAnotherFieldInjectDependency);
+ assertEquals("Yet Another Arbitrary Dependency", yetAnotherFieldInjectDependency.toString());
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectDemo.java b/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectDemo.java
new file mode 100644
index 0000000000..df40e516ba
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/inject/FieldInjectDemo.java
@@ -0,0 +1,27 @@
+package com.baeldung.inject;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.baeldung.dependency.ArbitraryDependency;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Inject-Type.xml"})
+public class FieldInjectDemo {
+
+ @Inject
+ private ArbitraryDependency inject1Dependency;
+
+ @Test
+ public void fieldDependency_MUST_BE_INJECTED_Successfully() {
+ assertNotNull(inject1Dependency);
+ assertEquals("Arbitrary Dependency", inject1Dependency.toString());
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectDemo.java b/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectDemo.java
new file mode 100644
index 0000000000..3cc9b643c7
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/inject/FieldQualifierInjectDemo.java
@@ -0,0 +1,40 @@
+package com.baeldung.inject;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.inject.Inject;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.baeldung.dependency.ArbitraryDependency;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Inject-Qualifier.xml"})
+public class FieldQualifierInjectDemo {
+
+ @Inject
+ @Qualifier("defaultFile")
+ private ArbitraryDependency defaultDependency;
+
+ @Inject
+ @Qualifier("namedFile")
+ private ArbitraryDependency namedDependency;
+
+ @Test
+ public void defaultDependency_MUST_BE_INJECTED_Successfully() {
+ assertNotNull(defaultDependency);
+ assertEquals("Arbitrary Dependency", defaultDependency.toString());
+ }
+
+ @Test
+ public void namedDependency_MUST_BE_INJECTED_Correctly() {
+ assertNotNull(defaultDependency);
+ assertEquals("Another Arbitrary Dependency", namedDependency.toString());
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionDemo.java b/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionDemo.java
new file mode 100644
index 0000000000..fbb378d672
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/FieldResourceInjectionDemo.java
@@ -0,0 +1,25 @@
+package com.baeldung.resource;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-NameType.xml"})
+public class FieldResourceInjectionDemo {
+
+ @Resource(name="namedFile")
+ private File defaultFile;
+
+ @Test
+ public void plainResourceAnnotation_MUST_FIND_DefaultFile() {
+ assertNotNull(defaultFile);
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceDemo.java b/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceDemo.java
new file mode 100644
index 0000000000..fcca34dc2f
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/MethodByQualifierResourceDemo.java
@@ -0,0 +1,43 @@
+package com.baeldung.resource;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-Qualifier.xml"})
+public class MethodByQualifierResourceDemo {
+
+ private File arbDependency;
+ private File anotherArbDependency;
+
+ @Test
+ public void dependencies_MUST_BE_INJECTED_Correctly() {
+ assertNotNull(arbDependency);
+ assertEquals("namedFile.txt", arbDependency.getName());
+ assertNotNull(anotherArbDependency);
+ assertEquals("defaultFile.txt", anotherArbDependency.getName());
+ }
+
+ @Resource
+ @Qualifier("namedFile")
+ public void setArbDependency(File arbDependency) {
+ this.arbDependency = arbDependency;
+ }
+
+ @Resource
+ @Qualifier("defaultFile")
+ public void setAnotherArbDependency(File anotherArbDependency) {
+ this.anotherArbDependency = anotherArbDependency;
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceDemo.java b/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceDemo.java
new file mode 100644
index 0000000000..af6a805bd9
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/MethodByTypeResourceDemo.java
@@ -0,0 +1,30 @@
+package com.baeldung.resource;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-NameType.xml"})
+public class MethodByTypeResourceDemo {
+
+ private File defaultFile;
+
+ @Resource
+ protected void setDefaultFile(File defaultFile) {
+ this.defaultFile = defaultFile;
+ }
+
+ @Test
+ public void defaultFile_MUST_BE_INJECTED_Correctly() {
+ assertNotNull(defaultFile);
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionDemo.java b/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionDemo.java
new file mode 100644
index 0000000000..d746fd4d85
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/MethodResourceInjectionDemo.java
@@ -0,0 +1,29 @@
+package com.baeldung.resource;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-NameType.xml"})
+public class MethodResourceInjectionDemo {
+
+ private File defaultFile;
+
+ @Resource(name="namedFile")
+ protected void setDefaultFile(File defaultFile) {
+ this.defaultFile = defaultFile;
+ }
+
+ @Test
+ public void defaultFile_MUST_BE_INJECTED_Correctly() {
+ assertNotNull(defaultFile);
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java b/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
new file mode 100644
index 0000000000..8b218dfe98
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/NamedResourceTest.java
@@ -0,0 +1,27 @@
+package com.baeldung.resource;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-NameType.xml"})
+public class NamedResourceTest {
+
+ @Resource(name="namedFile")
+ private File testFile;
+
+ @Test
+ public void namedResource_MUST_FIND_SPECIFIED_File() {
+ assertNotNull(testFile);
+ assertTrue(testFile.getName().equals("namedFile.txt"));
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionDemo.java b/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionDemo.java
new file mode 100644
index 0000000000..0aaa2085d5
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/QualifierResourceInjectionDemo.java
@@ -0,0 +1,35 @@
+package com.baeldung.resource;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-Qualifier.xml"})
+public class QualifierResourceInjectionDemo {
+
+ @Resource
+ private File defaultFile;
+
+ @Resource
+ @Qualifier("namedFile")
+ private File namedFile;
+
+ @Test
+ public void defaultFile_MUST_BE_Valid() {
+ assertNotNull(defaultFile);
+ }
+
+ @Test
+ public void namedFile_MUST_BE_Valid() {
+ assertNotNull(namedFile);
+ }
+}
diff --git a/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionDemo.java b/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionDemo.java
new file mode 100644
index 0000000000..25dd5bb9ff
--- /dev/null
+++ b/dependency-injection/src/test/java/com/baeldung/resource/SetterResourceInjectionDemo.java
@@ -0,0 +1,29 @@
+package com.baeldung.resource;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+
+import javax.annotation.Resource;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations={
+ "/applicationContextTest-@Resource-NameType.xml"})
+public class SetterResourceInjectionDemo {
+
+ private File defaultFile;
+
+ @Resource
+ protected void setDefaultFile(File defaultFile) {
+ this.defaultFile = defaultFile;
+ }
+
+ @Test
+ public void setter_MUST_INJECT_Resource() {
+ assertNotNull(defaultFile);
+ }
+}
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Name.xml b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Name.xml
new file mode 100644
index 0000000000..d7fe3abcb3
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Name.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Qualifier.xml b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Qualifier.xml
new file mode 100644
index 0000000000..d7fe3abcb3
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Qualifier.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Type.xml b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Type.xml
new file mode 100644
index 0000000000..c65b85ccf4
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Autowired-Type.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Name.xml b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Name.xml
new file mode 100644
index 0000000000..610e8687a7
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Name.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Qualifier.xml b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Qualifier.xml
new file mode 100644
index 0000000000..627ec37914
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Qualifier.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Inject-Type.xml b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Type.xml
new file mode 100644
index 0000000000..405164e603
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Inject-Type.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Resource-NameType.xml b/dependency-injection/src/test/resources/applicationContextTest-@Resource-NameType.xml
new file mode 100644
index 0000000000..82cbe97157
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Resource-NameType.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/dependency-injection/src/test/resources/applicationContextTest-@Resource-Qualifier.xml b/dependency-injection/src/test/resources/applicationContextTest-@Resource-Qualifier.xml
new file mode 100644
index 0000000000..1680a6f66a
--- /dev/null
+++ b/dependency-injection/src/test/resources/applicationContextTest-@Resource-Qualifier.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+