diff --git a/core-java/pom.xml b/core-java/pom.xml index cea5e9b3ec..dbf61c3acf 100644 --- a/core-java/pom.xml +++ b/core-java/pom.xml @@ -216,6 +216,13 @@ spring-web 4.3.4.RELEASE + + com.sun + tools + 1.8.0 + system + ${java.home}/../lib/tools.jar + diff --git a/core-java/src/main/java/com/baeldung/javac/Positive.java b/core-java/src/main/java/com/baeldung/javac/Positive.java new file mode 100644 index 0000000000..443b866fea --- /dev/null +++ b/core-java/src/main/java/com/baeldung/javac/Positive.java @@ -0,0 +1,9 @@ +package com.baeldung.javac; + +import java.lang.annotation.*; + +@Documented +@Retention(RetentionPolicy.CLASS) +@Target({ElementType.PARAMETER}) +public @interface Positive { +} diff --git a/core-java/src/main/java/com/baeldung/javac/SampleJavacPlugin.java b/core-java/src/main/java/com/baeldung/javac/SampleJavacPlugin.java new file mode 100644 index 0000000000..eb48d6a216 --- /dev/null +++ b/core-java/src/main/java/com/baeldung/javac/SampleJavacPlugin.java @@ -0,0 +1,123 @@ +package com.baeldung.javac; + +import com.sun.source.tree.MethodTree; +import com.sun.source.tree.VariableTree; +import com.sun.source.util.*; +import com.sun.tools.javac.api.BasicJavacTask; +import com.sun.tools.javac.code.TypeTag; +import com.sun.tools.javac.tree.JCTree; +import com.sun.tools.javac.tree.TreeMaker; +import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.Name; +import com.sun.tools.javac.util.Names; + +import javax.tools.JavaCompiler; +import java.util.*; +import java.util.stream.Collectors; + +import static com.sun.tools.javac.util.List.nil; + +/** + * A {@link JavaCompiler javac} plugin which inserts {@code >= 0} checks into resulting {@code *.class} files + * for numeric method parameters marked by {@link Positive} + */ +public class SampleJavacPlugin implements Plugin { + + public static final String NAME = "MyPlugin"; + + private static Set TARGET_TYPES = new HashSet<>(Arrays.asList( + // Use only primitive types for simplicity + byte.class.getName(), short.class.getName(), char.class.getName(), + int.class.getName(), long.class.getName(), float.class.getName(), double.class.getName())); + + @Override + public String getName() { + return NAME; + } + + @Override + public void init(JavacTask task, String... args) { + Context context = ((BasicJavacTask) task).getContext(); + task.addTaskListener(new TaskListener() { + @Override + public void started(TaskEvent e) { + } + + @Override + public void finished(TaskEvent e) { + if (e.getKind() != TaskEvent.Kind.PARSE) { + return; + } + e.getCompilationUnit() + .accept(new TreeScanner() { + @Override + public Void visitMethod(MethodTree method, Void v) { + List parametersToInstrument = method.getParameters() + .stream() + .filter(SampleJavacPlugin.this::shouldInstrument) + .collect(Collectors.toList()); + if (!parametersToInstrument.isEmpty()) { + // There is a possible case that more than one argument is marked by @Positive, + // as the checks are added to the method's body beginning, we process parameters RTL + // to ensure correct order. + Collections.reverse(parametersToInstrument); + parametersToInstrument.forEach(p -> addCheck(method, p, context)); + } + // There is a possible case that there is a nested class declared in a method's body, + // hence, we want to proceed with method body AST as well. + return super.visitMethod(method, v); + } + }, null); + } + }); + } + + private boolean shouldInstrument(VariableTree parameter) { + return TARGET_TYPES.contains(parameter.getType().toString()) + && parameter.getModifiers().getAnnotations() + .stream() + .anyMatch(a -> Positive.class.getSimpleName().equals(a.getAnnotationType().toString())); + } + + private void addCheck(MethodTree method, VariableTree parameter, Context context) { + JCTree.JCIf check = createCheck(parameter, context); + JCTree.JCBlock body = (JCTree.JCBlock) method.getBody(); + body.stats = body.stats.prepend(check); + } + + private static JCTree.JCIf createCheck(VariableTree parameter, Context context) { + TreeMaker factory = TreeMaker.instance(context); + Names symbolsTable = Names.instance(context); + + return factory.at(((JCTree) parameter).pos) + .If(factory.Parens(createIfCondition(factory, symbolsTable, parameter)), + createIfBlock(factory, symbolsTable, parameter), + null); + } + + private static JCTree.JCBinary createIfCondition(TreeMaker factory, Names symbolsTable, VariableTree parameter) { + Name parameterId = symbolsTable.fromString(parameter.getName().toString()); + return factory.Binary(JCTree.Tag.LE, + factory.Ident(parameterId), + factory.Literal(TypeTag.INT, 0)); + } + + private static JCTree.JCBlock createIfBlock(TreeMaker factory, Names symbolsTable, VariableTree parameter) { + String parameterName = parameter.getName().toString(); + Name parameterId = symbolsTable.fromString(parameterName); + + String errorMessagePrefix = String.format("Argument '%s' of type %s is marked by @%s but got '", + parameterName, parameter.getType(), Positive.class.getSimpleName()); + String errorMessageSuffix = "' for it"; + + return factory.Block(0, com.sun.tools.javac.util.List.of( + factory.Throw( + factory.NewClass(null, nil(), + factory.Ident(symbolsTable.fromString(IllegalArgumentException.class.getSimpleName())), + com.sun.tools.javac.util.List.of(factory.Binary(JCTree.Tag.PLUS, + factory.Binary(JCTree.Tag.PLUS, factory.Literal(TypeTag.CLASS, errorMessagePrefix), + factory.Ident(parameterId)), + factory.Literal(TypeTag.CLASS, errorMessageSuffix))), null)))); + } + +} diff --git a/core-java/src/main/resources/META-INF/services/com.sun.source.util.Plugin b/core-java/src/main/resources/META-INF/services/com.sun.source.util.Plugin new file mode 100644 index 0000000000..91fb6eb3b0 --- /dev/null +++ b/core-java/src/main/resources/META-INF/services/com.sun.source.util.Plugin @@ -0,0 +1 @@ +com.baeldung.javac.SampleJavacPlugin \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/javac/SampleJavacPluginIntegrationTest.java b/core-java/src/test/java/com/baeldung/javac/SampleJavacPluginIntegrationTest.java new file mode 100644 index 0000000000..b877038add --- /dev/null +++ b/core-java/src/test/java/com/baeldung/javac/SampleJavacPluginIntegrationTest.java @@ -0,0 +1,42 @@ +package com.baeldung.javac; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SampleJavacPluginIntegrationTest { + + private static final String CLASS_TEMPLATE = + "package com.baeldung.javac;\n" + + "\n" + + "public class Test {\n" + + " public static %1$s service(@Positive %1$s i) {\n" + + " return i;\n" + + " }\n" + + "}\n" + + ""; + + private TestCompiler compiler = new TestCompiler(); + private TestRunner runner = new TestRunner(); + + @Test(expected = IllegalArgumentException.class) + public void givenInt_whenNegative_thenThrowsException() throws Throwable { + compileAndRun(double.class,-1); + } + + @Test(expected = IllegalArgumentException.class) + public void givenInt_whenZero_thenThrowsException() throws Throwable { + compileAndRun(int.class,0); + } + + @Test + public void givenInt_whenPositive_thenSuccess() throws Throwable { + assertEquals(1, compileAndRun(int.class, 1)); + } + + private Object compileAndRun(Class> argumentType, Object argument) throws Throwable { + String qualifiedClassName = "com.baeldung.javac.Test"; + byte[] byteCode = compiler.compile(qualifiedClassName, String.format(CLASS_TEMPLATE, argumentType.getName())); + return runner.run(byteCode, qualifiedClassName, "service", new Class[] {argumentType}, argument); + } +} diff --git a/core-java/src/test/java/com/baeldung/javac/SimpleClassFile.java b/core-java/src/test/java/com/baeldung/javac/SimpleClassFile.java new file mode 100644 index 0000000000..2c8e66e6e3 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/javac/SimpleClassFile.java @@ -0,0 +1,26 @@ +package com.baeldung.javac; + +import javax.tools.SimpleJavaFileObject; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URI; + +/** Holds compiled byte code in a byte array */ +public class SimpleClassFile extends SimpleJavaFileObject { + + private ByteArrayOutputStream out; + + public SimpleClassFile(URI uri) { + super(uri, Kind.CLASS); + } + + @Override + public OutputStream openOutputStream() throws IOException { + return out = new ByteArrayOutputStream(); + } + + public byte[] getCompiledBinaries() { + return out.toByteArray(); + } +} \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/javac/SimpleFileManager.java b/core-java/src/test/java/com/baeldung/javac/SimpleFileManager.java new file mode 100644 index 0000000000..346f240754 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/javac/SimpleFileManager.java @@ -0,0 +1,34 @@ +package com.baeldung.javac; + +import javax.tools.*; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; + +/** Adapts {@link SimpleClassFile} to the {@link JavaCompiler} */ +public class SimpleFileManager extends ForwardingJavaFileManager { + + private final List compiled = new ArrayList<>(); + + public SimpleFileManager(StandardJavaFileManager delegate) { + super(delegate); + } + + @Override + public JavaFileObject getJavaFileForOutput(Location location, + String className, + JavaFileObject.Kind kind, + FileObject sibling) + { + SimpleClassFile result = new SimpleClassFile(URI.create("string://" + className)); + compiled.add(result); + return result; + } + + /** + * @return compiled binaries processed by the current class + */ + public List getCompiled() { + return compiled; + } +} \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/javac/SimpleSourceFile.java b/core-java/src/test/java/com/baeldung/javac/SimpleSourceFile.java new file mode 100644 index 0000000000..9287b1a0dd --- /dev/null +++ b/core-java/src/test/java/com/baeldung/javac/SimpleSourceFile.java @@ -0,0 +1,23 @@ +package com.baeldung.javac; + +import javax.tools.SimpleJavaFileObject; +import java.net.URI; + +/** Exposes given test source to the compiler. */ +public class SimpleSourceFile extends SimpleJavaFileObject { + + private final String content; + + public SimpleSourceFile(String qualifiedClassName, String testSource) { + super(URI.create(String.format("file://%s%s", + qualifiedClassName.replaceAll("\\.", "/"), + Kind.SOURCE.extension)), + Kind.SOURCE); + content = testSource; + } + + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return content; + } +} \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/javac/TestCompiler.java b/core-java/src/test/java/com/baeldung/javac/TestCompiler.java new file mode 100644 index 0000000000..ee40e563a3 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/javac/TestCompiler.java @@ -0,0 +1,35 @@ +package com.baeldung.javac; + +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; + +import static java.util.Arrays.asList; +import static java.util.Collections.singletonList; + +public class TestCompiler { + public byte[] compile(String qualifiedClassName, String testSource) { + StringWriter output = new StringWriter(); + + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + SimpleFileManager fileManager = new SimpleFileManager(compiler.getStandardFileManager( + null, + null, + null + )); + List compilationUnits = singletonList(new SimpleSourceFile(qualifiedClassName, testSource)); + List arguments = new ArrayList<>(); + arguments.addAll(asList("-classpath", System.getProperty("java.class.path"), + "-Xplugin:" + SampleJavacPlugin.NAME)); + JavaCompiler.CompilationTask task = compiler.getTask(output, + fileManager, + null, + arguments, + null, + compilationUnits); + task.call(); + return fileManager.getCompiled().iterator().next().getCompiledBinaries(); + } +} diff --git a/core-java/src/test/java/com/baeldung/javac/TestRunner.java b/core-java/src/test/java/com/baeldung/javac/TestRunner.java new file mode 100644 index 0000000000..6a03ad4918 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/javac/TestRunner.java @@ -0,0 +1,41 @@ +package com.baeldung.javac; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +public class TestRunner { + + public Object run(byte[] byteCode, + String qualifiedClassName, + String methodName, + Class>[] argumentTypes, + Object... args) + throws Throwable + { + ClassLoader classLoader = new ClassLoader() { + @Override + protected Class> findClass(String name) throws ClassNotFoundException { + return defineClass(name, byteCode, 0, byteCode.length); + } + }; + Class> clazz; + try { + clazz = classLoader.loadClass(qualifiedClassName); + } catch (ClassNotFoundException e) { + throw new RuntimeException("Can't load compiled test class", e); + } + + Method method; + try { + method = clazz.getMethod(methodName, argumentTypes); + } catch (NoSuchMethodException e) { + throw new RuntimeException("Can't find the 'main()' method in the compiled test class", e); + } + + try { + return method.invoke(null, args); + } catch (InvocationTargetException e) { + throw e.getCause(); + } + } +} diff --git a/core-java/src/test/java/com/baeldung/string/formatter/StringFormatterExampleTests.java b/core-java/src/test/java/com/baeldung/string/formatter/StringFormatterExampleTests.java new file mode 100644 index 0000000000..5e8d2c4455 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/string/formatter/StringFormatterExampleTests.java @@ -0,0 +1,141 @@ +package com.baeldung.string.formatter; + +import java.util.Calendar; +import java.util.Formatter; +import java.util.GregorianCalendar; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import org.junit.Test; + +public class StringFormatterExampleTests { + + @Test + public void givenString_whenFormatSpecifierForCalendar_thenGotExpected() { + //Syntax of Format Specifiers for Date/Time Representation + Calendar c = new GregorianCalendar(2017, 11, 10); + String s = String.format("The date is: %1$tm %1$te,%1$tY", c); + + assertEquals("The date is: 12 10,2017", s); + } + + @Test + public void givenString_whenGeneralConversion_thenConvertedString() { + //General Conversions + String s = String.format("The correct answer is %s", false); + assertEquals("The correct answer is false", s); + + s = String.format("The correct answer is %b", null); + assertEquals("The correct answer is false", s); + + s = String.format("The correct answer is %B", true); + assertEquals("The correct answer is TRUE", s); + } + + @Test + public void givenString_whenCharConversion_thenConvertedString() { + //Character Conversions + String s = String.format("The correct answer is %c", 'a'); + assertEquals("The correct answer is a", s); + + s = String.format("The correct answer is %c", null); + assertEquals("The correct answer is null", s); + + s = String.format("The correct answer is %C", 'b'); + assertEquals("The correct answer is B", s); + + s = String.format("The valid unicode character: %c", 0x0400); + assertTrue(Character.isValidCodePoint(0x0400)); + assertEquals("The valid unicode character: Ѐ", s); + } + + @Test(expected = java.util.IllegalFormatCodePointException.class) + public void givenString_whenIllegalCodePointForConversion_thenError() { + String s = String.format("The valid unicode character: %c", 0x11FFFF); + assertFalse(Character.isValidCodePoint(0x11FFFF)); + assertEquals("The valid unicode character: Ā", s); + } + + @Test + public void givenString_whenNumericIntegralConversion_thenConvertedString() { + //Numeric Integral Conversions + String s = String.format("The number 25 in decimal = %d", 25); + assertEquals("The number 25 in decimal = 25", s); + + s = String.format("The number 25 in octal = %o", 25); + assertEquals("The number 25 in octal = 31", s); + + s = String.format("The number 25 in hexadecimal = %x", 25); + assertEquals("The number 25 in hexadecimal = 19", s); + } + + @Test + public void givenString_whenNumericFloatingConversion_thenConvertedString() { + //Numeric Floating-point Conversions + String s = String.format("The computerized scientific format of 10000.00 " + + "= %e", 10000.00); + assertEquals("The computerized scientific format of 10000.00 = 1.000000e+04", s); + + s = String.format("The decimal format of 10.019 = %f", 10.019); + assertEquals("The decimal format of 10.019 = 10.019000", s); + } + + @Test + public void givenString_whenLineSeparatorConversion_thenConvertedString() { + //Line Separator Conversion + String s = String.format("First Line %nSecond Line"); + assertEquals("First Line \n" + + "Second Line", s); + } + + @Test + public void givenString_whenSpecifyFlag_thenGotFormattedString() { + //Without left-justified flag + String s = String.format("Without left justified flag: %5d", 25); + assertEquals("Without left justified flag: 25", s); + + //Using left-justified flag + s = String.format("With left justified flag: %-5d", 25); + assertEquals("With left justified flag: 25 ", s); + } + + @Test + public void givenString_whenSpecifyPrecision_thenGotExpected() { + + //Precision + String s = String.format("Output of 25.09878 with Precision 2: %.2f", 25.09878); + assertEquals("Output of 25.09878 with Precision 2: 25.10", s); + + s = String.format("Output of general conversion type with Precision 2: %.2b", true); + assertEquals("Output of general conversion type with Precision 2: tr", s); + } + + @Test + public void givenString_whenSpecifyArgumentIndex_thenGotExpected() { + Calendar c = new GregorianCalendar(2017, 11, 10); + //Argument_Index + String s = String.format("The date is: %1$tm %1$te,%1$tY", c); + assertEquals("The date is: 12 10,2017", s); + + s = String.format("The date is: %1$tm % users = userBean.getUsers(); + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + List users = userBean.getUsers(); - PrintWriter out = response.getWriter(); + PrintWriter out = response.getWriter(); - out.println(""); - out.println("Users"); - out.println(""); - out.println("List of users:"); - out.println(""); - for (User user : users) { - out.println(""); - out.print("" + user.getUsername() + ""); - out.print("" + user.getEmail() + ""); - out.println(""); - } - } + out.println(""); + out.println("Users"); + out.println(""); + out.println("List of users:"); + out.println(""); + for (User user : users) { + out.println(""); + out.print("" + user.getUsername() + ""); + out.print("" + user.getEmail() + ""); + out.println(""); + } + } - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - doGet(request, response); - } + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } } diff --git a/hibernate5/README.md b/hibernate5/README.md index 9ef170a134..4690ebbe76 100644 --- a/hibernate5/README.md +++ b/hibernate5/README.md @@ -1,3 +1,4 @@ ## Relevant articles: - [Dynamic Mapping with Hibernate](http://www.baeldung.com/hibernate-dynamic-mapping) +- [An Overview of Identifiers in Hibernate](http://www.baeldung.com/hibernate-identifiers) diff --git a/osgi/intro/osgi-intro-sample-activator/pom.xml b/osgi/intro/osgi-intro-sample-activator/pom.xml new file mode 100644 index 0000000000..1584913627 --- /dev/null +++ b/osgi/intro/osgi-intro-sample-activator/pom.xml @@ -0,0 +1,55 @@ + + + + + + osgi-intro + com.baeldung + 1.0-SNAPSHOT + + 4.0.0 + + + bundle + + osgi-intro-sample-activator + + + + org.osgi + org.osgi.core + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + ${project.groupId}.${project.artifactId} + ${project.artifactId} + ${project.version} + + + com.baeldung.osgi.sample.activator.HelloWorld + + + + com.baeldung.osgi.sample.activator + + + + + + + + diff --git a/osgi/intro/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java b/osgi/intro/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java new file mode 100644 index 0000000000..72fe624bac --- /dev/null +++ b/osgi/intro/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java @@ -0,0 +1,16 @@ +package com.baeldung.osgi.sample.activator; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class HelloWorld implements BundleActivator { + + public void start(BundleContext ctx) { + System.out.println("Hello World."); + } + + public void stop(BundleContext bundleContext) { + System.out.println("Goodbye World."); + } + +} \ No newline at end of file diff --git a/osgi/intro/osgi-intro-sample-client/pom.xml b/osgi/intro/osgi-intro-sample-client/pom.xml new file mode 100644 index 0000000000..4096674d7d --- /dev/null +++ b/osgi/intro/osgi-intro-sample-client/pom.xml @@ -0,0 +1,49 @@ + + + + osgi-intro + com.baeldung + 1.0-SNAPSHOT + + 4.0.0 + + + osgi-intro-sample-client + + bundle + + + + com.baeldung + osgi-intro-sample-service + 1.0-SNAPSHOT + + + org.osgi + org.osgi.core + + + + + + + org.apache.felix + maven-bundle-plugin + + + ${project.groupId}.${project.artifactId} + ${project.artifactId} + ${project.version} + com.baeldung.osgi.sample.client.Client + + com.baeldung.osgi.sample.client + + + + + + + + \ No newline at end of file diff --git a/osgi/intro/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java b/osgi/intro/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java new file mode 100644 index 0000000000..a82ed63fa7 --- /dev/null +++ b/osgi/intro/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java @@ -0,0 +1,44 @@ +package com.baeldung.osgi.sample.client; + +import com.baeldung.osgi.sample.service.definition.Greeter; +import org.osgi.framework.*; + +public class Client implements BundleActivator, ServiceListener { + + private BundleContext ctx; + private ServiceReference serviceReference; + + public void start(BundleContext ctx) { + this.ctx = ctx; + try { + ctx.addServiceListener(this, "(objectclass=" + Greeter.class.getName() + ")"); + } catch (InvalidSyntaxException ise) { + ise.printStackTrace(); + } + } + + public void stop(BundleContext bundleContext) { + if (serviceReference != null) { + ctx.ungetService(serviceReference); + } + this.ctx = null; + } + + public void serviceChanged(ServiceEvent serviceEvent) { + int type = serviceEvent.getType(); + switch (type) { + case (ServiceEvent.REGISTERED): + System.out.println("Notification of service registered."); + serviceReference = serviceEvent.getServiceReference(); + Greeter service = (Greeter) (ctx.getService(serviceReference)); + System.out.println(service.sayHiTo("John")); + break; + case (ServiceEvent.UNREGISTERING): + System.out.println("Notification of service unregistered."); + ctx.ungetService(serviceEvent.getServiceReference()); + break; + default: + break; + } + } +} diff --git a/osgi/intro/osgi-intro-sample-service/pom.xml b/osgi/intro/osgi-intro-sample-service/pom.xml new file mode 100644 index 0000000000..cbc660bb74 --- /dev/null +++ b/osgi/intro/osgi-intro-sample-service/pom.xml @@ -0,0 +1,46 @@ + + + + + + osgi-intro + com.baeldung + 1.0-SNAPSHOT + + 4.0.0 + + osgi-intro-sample-service + + + bundle + + + + org.osgi + org.osgi.core + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + ${project.groupId}.${project.artifactId} + ${project.artifactId} + ${project.version} + com.baeldung.osgi.sample.service.implementation.GreeterImpl + com.baeldung.osgi.sample.service.implementation + com.baeldung.osgi.sample.service.definition + + + + + + + \ No newline at end of file diff --git a/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java b/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java new file mode 100644 index 0000000000..f1e82a3465 --- /dev/null +++ b/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java @@ -0,0 +1,7 @@ +package com.baeldung.osgi.sample.service.definition; + +public interface Greeter { + + public String sayHiTo(String name); + +} diff --git a/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java b/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java new file mode 100644 index 0000000000..48e26e3e6b --- /dev/null +++ b/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java @@ -0,0 +1,30 @@ +package com.baeldung.osgi.sample.service.implementation; + +import com.baeldung.osgi.sample.service.definition.Greeter; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; + +import java.util.Hashtable; + +public class GreeterImpl implements Greeter, BundleActivator { + + private ServiceReference reference; + private ServiceRegistration registration; + + @Override public String sayHiTo(String name) { + return "Hello " + name; + } + + @Override public void start(BundleContext context) throws Exception { + System.out.println("Registering service."); + registration = context.registerService(Greeter.class, new GreeterImpl(), new Hashtable()); + reference = registration.getReference(); + } + + @Override public void stop(BundleContext context) throws Exception { + System.out.println("Unregistering service."); + registration.unregister(); + } +} diff --git a/osgi/intro/pom.xml b/osgi/intro/pom.xml new file mode 100644 index 0000000000..83db90d19e --- /dev/null +++ b/osgi/intro/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + osgi-intro + pom + 1.0-SNAPSHOT + + osgi-intro-sample-activator + osgi-intro-sample-service + osgi-intro-sample-client + + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../.. + + + + + + + ${project.groupId} + osgi-intro-client + ${project.version} + + + + ${project.groupId} + osgi-intro-service + ${project.version} + + + + ${project.groupId} + osgi-intro-gxyz + ${project.version} + + + + ${project.groupId} + osgi-intro-mapquest + ${project.version} + + + + com.squareup.okhttp3 + okhttp + 3.9.0 + + + javax.json + javax.json-api + 1.1 + + + org.glassfish + javax.json + 1.1 + + + org.osgi + org.osgi.core + 5.0.0 + provided + + + + + + + + + org.apache.felix + maven-bundle-plugin + 1.4.0 + true + + + + + + \ No newline at end of file diff --git a/osgi/intro/readme.md b/osgi/intro/readme.md new file mode 100644 index 0000000000..ea4a411c7b --- /dev/null +++ b/osgi/intro/readme.md @@ -0,0 +1,91 @@ +OSGi +==== + +Info +--- + +com.baeldung.osgi +com.baeldung.osgi.sample.activator + +Apache Felix +--- + + +### Start + +Download Apache Felix Framework Distribution +from +org.apache.felix.main.distribution-5.6.8 + +No! The Apache Karaf container is best. +Download it from: + +Download a binary distribution and unzip wherever you prefer. + +Then run + + bin\karaf.bat start + + +Unzip, pay attention to the files not being clipped(!). + + system:exit + +exit! + + shutdown -h + +or `^D` + +### clean start + +full clean, remove "data directory " + +or... + + bin\karaf.bat clean + + bin\start.bat clean + +### run mode + +can be launched in + +- the "regular" mode starts Apache Karaf in foreground, including the shell console. +- the "server" mode starts Apache Karaf in foreground, without the shell console. +- the "background" mode starts Apache Karaf in background. + +### Logging + +https://karaf.apache.org/manual/latest/#_log + +can be logged to console + + +### Bundle deploy + + bundle:install mvn:com.baeldung/osgi-intro-sample-activator/1.0-SNAPSHOT + + install mvn:com.baeldung/osgi-intro-sample-service/1.0-SNAPSHOT + install mvn:com.baeldung/osgi-intro-sample-client/1.0-SNAPSHOT + +Eclipse's Equinox +==== + +Eclipse's OSGi platform +http://www.eclipse.org/equinox/ + +http://www.eclipse.org/equinox/documents/quickstart-framework.php + +click on "download" + +Latest Release +Oxygen.1 Wed, 6 Sep 2017 -- 17:00 (-0400) + +org.eclipse.osgi_3.12.1.v20170821-1548.jar + + = = NOT GOOD = = + + + + diff --git a/osgi/osgi-intro-sample-activator/pom.xml b/osgi/osgi-intro-sample-activator/pom.xml new file mode 100644 index 0000000000..1584913627 --- /dev/null +++ b/osgi/osgi-intro-sample-activator/pom.xml @@ -0,0 +1,55 @@ + + + + + + osgi-intro + com.baeldung + 1.0-SNAPSHOT + + 4.0.0 + + + bundle + + osgi-intro-sample-activator + + + + org.osgi + org.osgi.core + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + ${project.groupId}.${project.artifactId} + ${project.artifactId} + ${project.version} + + + com.baeldung.osgi.sample.activator.HelloWorld + + + + com.baeldung.osgi.sample.activator + + + + + + + + diff --git a/osgi/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java b/osgi/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java new file mode 100644 index 0000000000..72fe624bac --- /dev/null +++ b/osgi/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java @@ -0,0 +1,16 @@ +package com.baeldung.osgi.sample.activator; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class HelloWorld implements BundleActivator { + + public void start(BundleContext ctx) { + System.out.println("Hello World."); + } + + public void stop(BundleContext bundleContext) { + System.out.println("Goodbye World."); + } + +} \ No newline at end of file diff --git a/osgi/osgi-intro-sample-client/pom.xml b/osgi/osgi-intro-sample-client/pom.xml new file mode 100644 index 0000000000..4096674d7d --- /dev/null +++ b/osgi/osgi-intro-sample-client/pom.xml @@ -0,0 +1,49 @@ + + + + osgi-intro + com.baeldung + 1.0-SNAPSHOT + + 4.0.0 + + + osgi-intro-sample-client + + bundle + + + + com.baeldung + osgi-intro-sample-service + 1.0-SNAPSHOT + + + org.osgi + org.osgi.core + + + + + + + org.apache.felix + maven-bundle-plugin + + + ${project.groupId}.${project.artifactId} + ${project.artifactId} + ${project.version} + com.baeldung.osgi.sample.client.Client + + com.baeldung.osgi.sample.client + + + + + + + + \ No newline at end of file diff --git a/osgi/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java b/osgi/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java new file mode 100644 index 0000000000..a82ed63fa7 --- /dev/null +++ b/osgi/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java @@ -0,0 +1,44 @@ +package com.baeldung.osgi.sample.client; + +import com.baeldung.osgi.sample.service.definition.Greeter; +import org.osgi.framework.*; + +public class Client implements BundleActivator, ServiceListener { + + private BundleContext ctx; + private ServiceReference serviceReference; + + public void start(BundleContext ctx) { + this.ctx = ctx; + try { + ctx.addServiceListener(this, "(objectclass=" + Greeter.class.getName() + ")"); + } catch (InvalidSyntaxException ise) { + ise.printStackTrace(); + } + } + + public void stop(BundleContext bundleContext) { + if (serviceReference != null) { + ctx.ungetService(serviceReference); + } + this.ctx = null; + } + + public void serviceChanged(ServiceEvent serviceEvent) { + int type = serviceEvent.getType(); + switch (type) { + case (ServiceEvent.REGISTERED): + System.out.println("Notification of service registered."); + serviceReference = serviceEvent.getServiceReference(); + Greeter service = (Greeter) (ctx.getService(serviceReference)); + System.out.println(service.sayHiTo("John")); + break; + case (ServiceEvent.UNREGISTERING): + System.out.println("Notification of service unregistered."); + ctx.ungetService(serviceEvent.getServiceReference()); + break; + default: + break; + } + } +} diff --git a/osgi/osgi-intro-sample-service/pom.xml b/osgi/osgi-intro-sample-service/pom.xml new file mode 100644 index 0000000000..cbc660bb74 --- /dev/null +++ b/osgi/osgi-intro-sample-service/pom.xml @@ -0,0 +1,46 @@ + + + + + + osgi-intro + com.baeldung + 1.0-SNAPSHOT + + 4.0.0 + + osgi-intro-sample-service + + + bundle + + + + org.osgi + org.osgi.core + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + ${project.groupId}.${project.artifactId} + ${project.artifactId} + ${project.version} + com.baeldung.osgi.sample.service.implementation.GreeterImpl + com.baeldung.osgi.sample.service.implementation + com.baeldung.osgi.sample.service.definition + + + + + + + \ No newline at end of file diff --git a/osgi/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java b/osgi/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java new file mode 100644 index 0000000000..f1e82a3465 --- /dev/null +++ b/osgi/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java @@ -0,0 +1,7 @@ +package com.baeldung.osgi.sample.service.definition; + +public interface Greeter { + + public String sayHiTo(String name); + +} diff --git a/osgi/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java b/osgi/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java new file mode 100644 index 0000000000..48e26e3e6b --- /dev/null +++ b/osgi/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java @@ -0,0 +1,30 @@ +package com.baeldung.osgi.sample.service.implementation; + +import com.baeldung.osgi.sample.service.definition.Greeter; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; + +import java.util.Hashtable; + +public class GreeterImpl implements Greeter, BundleActivator { + + private ServiceReference reference; + private ServiceRegistration registration; + + @Override public String sayHiTo(String name) { + return "Hello " + name; + } + + @Override public void start(BundleContext context) throws Exception { + System.out.println("Registering service."); + registration = context.registerService(Greeter.class, new GreeterImpl(), new Hashtable()); + reference = registration.getReference(); + } + + @Override public void stop(BundleContext context) throws Exception { + System.out.println("Unregistering service."); + registration.unregister(); + } +} diff --git a/osgi/pom.xml b/osgi/pom.xml new file mode 100644 index 0000000000..4298a0d3eb --- /dev/null +++ b/osgi/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + osgi-intro + pom + 1.0-SNAPSHOT + + osgi-intro-sample-activator + osgi-intro-sample-service + osgi-intro-sample-client + + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + .. + + + + + + + ${project.groupId} + osgi-intro-client + ${project.version} + + + + ${project.groupId} + osgi-intro-service + ${project.version} + + + + ${project.groupId} + osgi-intro-gxyz + ${project.version} + + + + ${project.groupId} + osgi-intro-mapquest + ${project.version} + + + + com.squareup.okhttp3 + okhttp + 3.9.0 + + + javax.json + javax.json-api + 1.1 + + + org.glassfish + javax.json + 1.1 + + + org.osgi + org.osgi.core + 5.0.0 + provided + + + + + + + + + org.apache.felix + maven-bundle-plugin + 1.4.0 + true + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index bc8e35ba94..631a2c9b26 100644 --- a/pom.xml +++ b/pom.xml @@ -62,10 +62,10 @@ feign flyway - + geotools - groovy-spock + testing-modules/groovy-spock gson guava guava18 @@ -98,7 +98,7 @@ json-path json jsoup - junit5 + testing-modules/junit-5 jws libraries @@ -112,9 +112,9 @@ mapstruct metrics mesos-marathon - mockito - mockito2 - mocks + testing-modules/mockito + testing-modules/mockito-2 + testing-modules/mocks mustache noexception @@ -129,13 +129,13 @@ reactor-core persistence-modules/redis - rest-assured - rest-testing + testing-modules/rest-assured + testing-modules/rest-testing resteasy rxjava spring-swagger-codegen - selenium-junit-testng + testing-modules/selenium-junit-testng persistence-modules/solr spark-java @@ -235,8 +235,8 @@ spring-rest-embedded-tomcat - testing - testng + testing-modules/testing + testing-modules/testng video-tutorials @@ -254,7 +254,7 @@ drools persistence-modules/liquibase spring-boot-property-exp - mockserver + testing-modules/mockserver undertow vertx-and-rxjava saas diff --git a/spring-jpa/src/main/java/org/baeldung/sqlfiles/Country.java b/spring-jpa/src/main/java/org/baeldung/sqlfiles/Country.java new file mode 100644 index 0000000000..0555c8186c --- /dev/null +++ b/spring-jpa/src/main/java/org/baeldung/sqlfiles/Country.java @@ -0,0 +1,33 @@ +package org.baeldung.sqlfiles; + +import static javax.persistence.GenerationType.IDENTITY; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Country { + + @Id + @GeneratedValue(strategy = IDENTITY) + private Integer id; + + @Column(nullable = false) + private String name; + + public Integer getId() { + return id; + } + public void setId(Integer id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + +} diff --git a/spring-jpa/src/main/resources/data.sql b/spring-jpa/src/main/resources/data.sql new file mode 100644 index 0000000000..f36e034ce1 --- /dev/null +++ b/spring-jpa/src/main/resources/data.sql @@ -0,0 +1,5 @@ +INSERT INTO country (name) VALUES ('India'); +INSERT INTO country (name) VALUES ('Brazil'); +INSERT INTO country (name) VALUES ('USA'); +INSERT INTO country (name) VALUES ('Italy'); +COMMIT; diff --git a/spring-jpa/src/main/resources/schema.sql b/spring-jpa/src/main/resources/schema.sql new file mode 100644 index 0000000000..15d7788cd7 --- /dev/null +++ b/spring-jpa/src/main/resources/schema.sql @@ -0,0 +1,5 @@ +CREATE TABLE country ( + id INTEGER NOT NULL AUTO_INCREMENT, + name VARCHAR(128) NOT NULL, + PRIMARY KEY (id) +); diff --git a/spring-jpa/src/main/resources/sqlfiles.properties b/spring-jpa/src/main/resources/sqlfiles.properties new file mode 100644 index 0000000000..0bea6adad1 --- /dev/null +++ b/spring-jpa/src/main/resources/sqlfiles.properties @@ -0,0 +1 @@ +spring.jpa.hibernate.ddl-auto=none \ No newline at end of file diff --git a/spring-security-mvc-boot/pom.xml b/spring-security-mvc-boot/pom.xml index 3a8bc1f3aa..6566c0eea6 100644 --- a/spring-security-mvc-boot/pom.xml +++ b/spring-security-mvc-boot/pom.xml @@ -122,6 +122,25 @@ jstl-api ${jstl.version} + + + org.springframework.security + spring-security-acl + + + org.springframework.security + spring-security-config + + + org.springframework + spring-context-support + + + net.sf.ehcache + ehcache-core + 2.6.11 + jar + diff --git a/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/ACLContext.java b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/ACLContext.java new file mode 100644 index 0000000000..63a4ea58ef --- /dev/null +++ b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/ACLContext.java @@ -0,0 +1,80 @@ +package org.baeldung.acl.config; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.cache.ehcache.EhCacheFactoryBean; +import org.springframework.cache.ehcache.EhCacheManagerFactoryBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler; +import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler; +import org.springframework.security.acls.AclPermissionCacheOptimizer; +import org.springframework.security.acls.AclPermissionEvaluator; +import org.springframework.security.acls.domain.AclAuthorizationStrategy; +import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl; +import org.springframework.security.acls.domain.ConsoleAuditLogger; +import org.springframework.security.acls.domain.DefaultPermissionGrantingStrategy; +import org.springframework.security.acls.domain.EhCacheBasedAclCache; +import org.springframework.security.acls.jdbc.BasicLookupStrategy; +import org.springframework.security.acls.jdbc.JdbcMutableAclService; +import org.springframework.security.acls.jdbc.LookupStrategy; +import org.springframework.security.acls.model.PermissionGrantingStrategy; +import org.springframework.security.core.authority.SimpleGrantedAuthority; + +@Configuration +@EnableAutoConfiguration +public class ACLContext { + + @Autowired + DataSource dataSource; + + @Bean + public EhCacheBasedAclCache aclCache() { + return new EhCacheBasedAclCache(aclEhCacheFactoryBean().getObject(), permissionGrantingStrategy(), aclAuthorizationStrategy()); + } + + @Bean + public EhCacheFactoryBean aclEhCacheFactoryBean() { + EhCacheFactoryBean ehCacheFactoryBean = new EhCacheFactoryBean(); + ehCacheFactoryBean.setCacheManager(aclCacheManager().getObject()); + ehCacheFactoryBean.setCacheName("aclCache"); + return ehCacheFactoryBean; + } + + @Bean + public EhCacheManagerFactoryBean aclCacheManager() { + return new EhCacheManagerFactoryBean(); + } + + @Bean + public PermissionGrantingStrategy permissionGrantingStrategy() { + return new DefaultPermissionGrantingStrategy(new ConsoleAuditLogger()); + } + + @Bean + public AclAuthorizationStrategy aclAuthorizationStrategy() { + return new AclAuthorizationStrategyImpl(new SimpleGrantedAuthority("ROLE_ADMIN")); + } + + @Bean + public MethodSecurityExpressionHandler defaultMethodSecurityExpressionHandler() { + DefaultMethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler(); + AclPermissionEvaluator permissionEvaluator = new AclPermissionEvaluator(aclService()); + expressionHandler.setPermissionEvaluator(permissionEvaluator); + expressionHandler.setPermissionCacheOptimizer(new AclPermissionCacheOptimizer(aclService())); + return expressionHandler; + } + + @Bean + public LookupStrategy lookupStrategy() { + return new BasicLookupStrategy(dataSource, aclCache(), aclAuthorizationStrategy(), new ConsoleAuditLogger()); + } + + @Bean + public JdbcMutableAclService aclService() { + return new JdbcMutableAclService(dataSource, lookupStrategy(), aclCache()); + } + +} \ No newline at end of file diff --git a/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/AclMethodSecurityConfiguration.java b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/AclMethodSecurityConfiguration.java new file mode 100644 index 0000000000..110c4a6d24 --- /dev/null +++ b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/AclMethodSecurityConfiguration.java @@ -0,0 +1,21 @@ +package org.baeldung.acl.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.access.expression.method.MethodSecurityExpressionHandler; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.GlobalMethodSecurityConfiguration; + +@Configuration +@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) +public class AclMethodSecurityConfiguration extends GlobalMethodSecurityConfiguration { + + @Autowired + MethodSecurityExpressionHandler defaultMethodSecurityExpressionHandler; + + @Override + protected MethodSecurityExpressionHandler createExpressionHandler() { + return defaultMethodSecurityExpressionHandler; + } + +} diff --git a/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/JPAPersistenceConfig.java b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/JPAPersistenceConfig.java new file mode 100644 index 0000000000..9b87efa92c --- /dev/null +++ b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/config/JPAPersistenceConfig.java @@ -0,0 +1,16 @@ +package org.baeldung.acl.config; + +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories(basePackages = "org.baeldung.acl.persistence.dao") +@PropertySource("classpath:org.baeldung.acl.datasource.properties") +@EntityScan(basePackages={ "org.baeldung.acl.persistence.entity" }) +public class JPAPersistenceConfig { + +} diff --git a/spring-security-mvc-boot/src/main/java/org/baeldung/acl/persistence/dao/NoticeMessageRepository.java b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/persistence/dao/NoticeMessageRepository.java new file mode 100644 index 0000000000..8662c88d6c --- /dev/null +++ b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/persistence/dao/NoticeMessageRepository.java @@ -0,0 +1,24 @@ +package org.baeldung.acl.persistence.dao; + +import java.util.List; + +import org.baeldung.acl.persistence.entity.NoticeMessage; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.query.Param; +import org.springframework.security.access.prepost.PostAuthorize; +import org.springframework.security.access.prepost.PostFilter; +import org.springframework.security.access.prepost.PreAuthorize; + +public interface NoticeMessageRepository extends JpaRepository{ + + @PostFilter("hasPermission(filterObject, 'READ')") + List findAll(); + + @PostAuthorize("hasPermission(returnObject, 'READ')") + NoticeMessage findById(Integer id); + + @SuppressWarnings("unchecked") + @PreAuthorize("hasPermission(#noticeMessage, 'WRITE')") + NoticeMessage save(@Param("noticeMessage")NoticeMessage noticeMessage); + +} diff --git a/spring-security-mvc-boot/src/main/java/org/baeldung/acl/persistence/entity/NoticeMessage.java b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/persistence/entity/NoticeMessage.java new file mode 100644 index 0000000000..23f01a8edb --- /dev/null +++ b/spring-security-mvc-boot/src/main/java/org/baeldung/acl/persistence/entity/NoticeMessage.java @@ -0,0 +1,29 @@ +package org.baeldung.acl.persistence.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name="system_message") +public class NoticeMessage { + + @Id + @Column + private Integer id; + @Column + private String content; + public Integer getId() { + return id; + } + public void setId(Integer id) { + this.id = id; + } + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } +} \ No newline at end of file diff --git a/spring-security-mvc-boot/src/main/resources/acl-data.sql b/spring-security-mvc-boot/src/main/resources/acl-data.sql new file mode 100644 index 0000000000..6c01eaacc2 --- /dev/null +++ b/spring-security-mvc-boot/src/main/resources/acl-data.sql @@ -0,0 +1,28 @@ +INSERT INTO system_message(id,content) VALUES (1,'First Level Message'); +INSERT INTO system_message(id,content) VALUES (2,'Second Level Message'); +INSERT INTO system_message(id,content) VALUES (3,'Third Level Message'); + +INSERT INTO acl_class (id, class) VALUES +(1, 'org.baeldung.acl.persistence.entity.NoticeMessage'); + +INSERT INTO acl_sid (id, principal, sid) VALUES +(1, 1, 'manager'), +(2, 1, 'hr'), +(3, 1, 'admin'), +(4, 0, 'ROLE_EDITOR'); + +INSERT INTO acl_object_identity (id, object_id_class, object_id_identity, parent_object, owner_sid, entries_inheriting) VALUES +(1, 1, 1, NULL, 3, 0), +(2, 1, 2, NULL, 3, 0), +(3, 1, 3, NULL, 3, 0) +; + +INSERT INTO acl_entry (id, acl_object_identity, ace_order, sid, mask, granting, audit_success, audit_failure) VALUES +(1, 1, 1, 1, 1, 1, 1, 1), +(2, 1, 2, 1, 2, 1, 1, 1), +(3, 1, 3, 4, 1, 1, 1, 1), +(4, 2, 1, 2, 1, 1, 1, 1), +(5, 2, 2, 4, 1, 1, 1, 1), +(6, 3, 1, 4, 1, 1, 1, 1), +(7, 3, 2, 4, 2, 1, 1, 1) +; \ No newline at end of file diff --git a/spring-security-mvc-boot/src/main/resources/acl-schema.sql b/spring-security-mvc-boot/src/main/resources/acl-schema.sql new file mode 100644 index 0000000000..58e9394b2b --- /dev/null +++ b/spring-security-mvc-boot/src/main/resources/acl-schema.sql @@ -0,0 +1,58 @@ +create table system_message (id integer not null, content varchar(255), primary key (id)); + +CREATE TABLE IF NOT EXISTS acl_sid ( + id bigint(20) NOT NULL AUTO_INCREMENT, + principal tinyint(1) NOT NULL, + sid varchar(100) NOT NULL, + PRIMARY KEY (id), + UNIQUE KEY unique_uk_1 (sid,principal) +); + +CREATE TABLE IF NOT EXISTS acl_class ( + id bigint(20) NOT NULL AUTO_INCREMENT, + class varchar(255) NOT NULL, + PRIMARY KEY (id), + UNIQUE KEY unique_uk_2 (class) +); + +CREATE TABLE IF NOT EXISTS acl_entry ( + id bigint(20) NOT NULL AUTO_INCREMENT, + acl_object_identity bigint(20) NOT NULL, + ace_order int(11) NOT NULL, + sid bigint(20) NOT NULL, + mask int(11) NOT NULL, + granting tinyint(1) NOT NULL, + audit_success tinyint(1) NOT NULL, + audit_failure tinyint(1) NOT NULL, + PRIMARY KEY (id), + UNIQUE KEY unique_uk_4 (acl_object_identity,ace_order) +); + +CREATE TABLE IF NOT EXISTS acl_object_identity ( + id bigint(20) NOT NULL AUTO_INCREMENT, + object_id_class bigint(20) NOT NULL, + object_id_identity bigint(20) NOT NULL, + parent_object bigint(20) DEFAULT NULL, + owner_sid bigint(20) DEFAULT NULL, + entries_inheriting tinyint(1) NOT NULL, + PRIMARY KEY (id), + UNIQUE KEY unique_uk_3 (object_id_class,object_id_identity) +); + +ALTER TABLE acl_entry +ADD FOREIGN KEY (acl_object_identity) REFERENCES acl_object_identity(id); + +ALTER TABLE acl_entry +ADD FOREIGN KEY (sid) REFERENCES acl_sid(id); + +-- +-- Constraints for table acl_object_identity +-- +ALTER TABLE acl_object_identity +ADD FOREIGN KEY (parent_object) REFERENCES acl_object_identity (id); + +ALTER TABLE acl_object_identity +ADD FOREIGN KEY (object_id_class) REFERENCES acl_class (id); + +ALTER TABLE acl_object_identity +ADD FOREIGN KEY (owner_sid) REFERENCES acl_sid (id); \ No newline at end of file diff --git a/spring-security-mvc-boot/src/main/resources/org.baeldung.acl.datasource.properties b/spring-security-mvc-boot/src/main/resources/org.baeldung.acl.datasource.properties new file mode 100644 index 0000000000..739dd3f07c --- /dev/null +++ b/spring-security-mvc-boot/src/main/resources/org.baeldung.acl.datasource.properties @@ -0,0 +1,12 @@ +spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE +spring.datasource.username=sa +spring.datasource.password= +spring.datasource.driverClassName=org.h2.Driver +spring.jpa.hibernate.ddl-auto=update +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect + +spring.h2.console.path=/myconsole +spring.h2.console.enabled=true +spring.datasource.initialize=true +spring.datasource.schema=classpath:acl-schema.sql +spring.datasource.data=classpath:acl-data.sql \ No newline at end of file diff --git a/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclTest.java b/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclTest.java new file mode 100644 index 0000000000..fd9069d9bc --- /dev/null +++ b/spring-security-mvc-boot/src/test/java/org/baeldung/acl/SpringAclTest.java @@ -0,0 +1,119 @@ +package org.baeldung.acl; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.List; + +import org.baeldung.acl.persistence.dao.NoticeMessageRepository; +import org.baeldung.acl.persistence.entity.NoticeMessage; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; +import org.springframework.test.context.support.DirtiesContextTestExecutionListener; +import org.springframework.test.context.transaction.TransactionalTestExecutionListener; +import org.springframework.test.context.web.ServletTestExecutionListener; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration +@TestExecutionListeners(listeners={ServletTestExecutionListener.class, + DependencyInjectionTestExecutionListener.class, + DirtiesContextTestExecutionListener.class, + TransactionalTestExecutionListener.class, + WithSecurityContextTestExecutionListener.class}) +public class SpringAclTest extends AbstractJUnit4SpringContextTests{ + + private static Integer FIRST_MESSAGE_ID = 1; + private static Integer SECOND_MESSAGE_ID = 2; + private static Integer THIRD_MESSAGE_ID = 3; + private static String EDITTED_CONTENT = "EDITED"; + + @Configuration + @ComponentScan("org.baeldung.acl.*") + public static class SpringConfig { + + } + + @Autowired + NoticeMessageRepository repo; + + @Test + @WithMockUser(username="manager") + public void givenUsernameManager_whenFindAllMessage_thenReturnFirstMessage(){ + List details = repo.findAll(); + assertNotNull(details); + assertEquals(1,details.size()); + assertEquals(FIRST_MESSAGE_ID,details.get(0).getId()); + } + + @Test + @WithMockUser(username="manager") + public void givenUsernameManager_whenFindFirstMessageByIdAndUpdateFirstMessageContent_thenOK(){ + NoticeMessage firstMessage = repo.findById(FIRST_MESSAGE_ID); + assertNotNull(firstMessage); + assertEquals(FIRST_MESSAGE_ID,firstMessage.getId()); + + firstMessage.setContent(EDITTED_CONTENT); + repo.save(firstMessage); + + NoticeMessage editedFirstMessage = repo.findById(FIRST_MESSAGE_ID); + assertNotNull(editedFirstMessage); + assertEquals(FIRST_MESSAGE_ID,editedFirstMessage.getId()); + assertEquals(EDITTED_CONTENT,editedFirstMessage.getContent()); + } + + @Test + @WithMockUser(username="hr") + public void givenUsernameHr_whenFindMessageById2_thenOK(){ + NoticeMessage secondMessage = repo.findById(SECOND_MESSAGE_ID); + assertNotNull(secondMessage); + assertEquals(SECOND_MESSAGE_ID,secondMessage.getId()); + } + + @Test(expected=AccessDeniedException.class) + @WithMockUser(username="hr") + public void givenUsernameHr_whenUpdateMessageWithId2_thenFail(){ + NoticeMessage secondMessage = new NoticeMessage(); + secondMessage.setId(SECOND_MESSAGE_ID); + secondMessage.setContent(EDITTED_CONTENT); + repo.save(secondMessage); + } + + @Test + @WithMockUser(roles={"EDITOR"}) + public void givenRoleEditor_whenFindAllMessage_thenReturnThreeMessage(){ + List details = repo.findAll(); + assertNotNull(details); + assertEquals(3,details.size()); + } + + @Test + @WithMockUser(roles={"EDITOR"}) + public void givenRoleEditor_whenUpdateThirdMessage_thenOK(){ + NoticeMessage thirdMessage = new NoticeMessage(); + thirdMessage.setId(THIRD_MESSAGE_ID); + thirdMessage.setContent(EDITTED_CONTENT); + repo.save(thirdMessage); + } + + @Test(expected=AccessDeniedException.class) + @WithMockUser(roles={"EDITOR"}) + public void givenRoleEditor_whenFindFirstMessageByIdAndUpdateFirstMessageContent_thenFail(){ + NoticeMessage firstMessage = repo.findById(FIRST_MESSAGE_ID); + assertNotNull(firstMessage); + assertEquals(FIRST_MESSAGE_ID,firstMessage.getId()); + firstMessage.setContent(EDITTED_CONTENT); + repo.save(firstMessage); + } +} + \ No newline at end of file diff --git a/gatling/README.md b/testing-modules/gatling/README.md similarity index 100% rename from gatling/README.md rename to testing-modules/gatling/README.md diff --git a/gatling/pom.xml b/testing-modules/gatling/pom.xml similarity index 100% rename from gatling/pom.xml rename to testing-modules/gatling/pom.xml diff --git a/gatling/src/test/resources/gatling.conf b/testing-modules/gatling/src/test/resources/gatling.conf similarity index 100% rename from gatling/src/test/resources/gatling.conf rename to testing-modules/gatling/src/test/resources/gatling.conf diff --git a/gatling/src/test/resources/logback.xml b/testing-modules/gatling/src/test/resources/logback.xml similarity index 100% rename from gatling/src/test/resources/logback.xml rename to testing-modules/gatling/src/test/resources/logback.xml diff --git a/gatling/src/test/resources/recorder.conf b/testing-modules/gatling/src/test/resources/recorder.conf similarity index 100% rename from gatling/src/test/resources/recorder.conf rename to testing-modules/gatling/src/test/resources/recorder.conf diff --git a/gatling/src/test/scala/Engine.scala b/testing-modules/gatling/src/test/scala/Engine.scala similarity index 100% rename from gatling/src/test/scala/Engine.scala rename to testing-modules/gatling/src/test/scala/Engine.scala diff --git a/gatling/src/test/scala/IDEPathHelper.scala b/testing-modules/gatling/src/test/scala/IDEPathHelper.scala similarity index 100% rename from gatling/src/test/scala/IDEPathHelper.scala rename to testing-modules/gatling/src/test/scala/IDEPathHelper.scala diff --git a/gatling/src/test/scala/Recorder.scala b/testing-modules/gatling/src/test/scala/Recorder.scala similarity index 100% rename from gatling/src/test/scala/Recorder.scala rename to testing-modules/gatling/src/test/scala/Recorder.scala diff --git a/gatling/src/test/scala/org/baeldung/RecordedSimulation.scala b/testing-modules/gatling/src/test/scala/org/baeldung/RecordedSimulation.scala similarity index 100% rename from gatling/src/test/scala/org/baeldung/RecordedSimulation.scala rename to testing-modules/gatling/src/test/scala/org/baeldung/RecordedSimulation.scala diff --git a/groovy-spock/README.md b/testing-modules/groovy-spock/README.md similarity index 100% rename from groovy-spock/README.md rename to testing-modules/groovy-spock/README.md diff --git a/groovy-spock/pom.xml b/testing-modules/groovy-spock/pom.xml similarity index 97% rename from groovy-spock/pom.xml rename to testing-modules/groovy-spock/pom.xml index d9b51c5e1a..f4e61e6786 100644 --- a/groovy-spock/pom.xml +++ b/testing-modules/groovy-spock/pom.xml @@ -17,6 +17,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/groovy-spock/src/test/groovy/FirstSpecification.groovy b/testing-modules/groovy-spock/src/test/groovy/FirstSpecification.groovy similarity index 100% rename from groovy-spock/src/test/groovy/FirstSpecification.groovy rename to testing-modules/groovy-spock/src/test/groovy/FirstSpecification.groovy diff --git a/groovy-spock/src/test/groovy/Notifier.groovy b/testing-modules/groovy-spock/src/test/groovy/Notifier.groovy similarity index 100% rename from groovy-spock/src/test/groovy/Notifier.groovy rename to testing-modules/groovy-spock/src/test/groovy/Notifier.groovy diff --git a/groovy-spock/src/test/groovy/PaymentGateway.groovy b/testing-modules/groovy-spock/src/test/groovy/PaymentGateway.groovy similarity index 100% rename from groovy-spock/src/test/groovy/PaymentGateway.groovy rename to testing-modules/groovy-spock/src/test/groovy/PaymentGateway.groovy diff --git a/junit5/README.md b/testing-modules/junit-5/README.md similarity index 100% rename from junit5/README.md rename to testing-modules/junit-5/README.md diff --git a/junit5/pom.xml b/testing-modules/junit-5/pom.xml similarity index 97% rename from junit5/pom.xml rename to testing-modules/junit-5/pom.xml index b8a7622b3d..229703ccf5 100644 --- a/junit5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -4,16 +4,17 @@ 4.0.0 - junit5 + junit-5 1.0-SNAPSHOT - junit5 + junit-5 Intro to JUnit 5 com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/User.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/User.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/User.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/User.java diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/repository/MailClient.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/repository/MailClient.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/repository/MailClient.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/repository/MailClient.java diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/repository/SettingRepository.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/repository/SettingRepository.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/repository/SettingRepository.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/repository/SettingRepository.java diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/repository/UserRepository.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/repository/UserRepository.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/repository/UserRepository.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/repository/UserRepository.java diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/service/DefaultUserService.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/service/DefaultUserService.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/service/DefaultUserService.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/service/DefaultUserService.java diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/service/Errors.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/service/Errors.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/service/Errors.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/service/Errors.java diff --git a/junit5/src/main/java/com/baeldung/junit5/mockito/service/UserService.java b/testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/service/UserService.java similarity index 100% rename from junit5/src/main/java/com/baeldung/junit5/mockito/service/UserService.java rename to testing-modules/junit-5/src/main/java/com/baeldung/junit5/mockito/service/UserService.java diff --git a/junit5/src/test/java/com/baeldung/AssertionUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/AssertionUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/AssertionUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/AssertionUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/AssumptionUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/AssumptionUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/AssumptionUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/AssumptionUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/DynamicTestsExample.java b/testing-modules/junit-5/src/test/java/com/baeldung/DynamicTestsExample.java similarity index 100% rename from junit5/src/test/java/com/baeldung/DynamicTestsExample.java rename to testing-modules/junit-5/src/test/java/com/baeldung/DynamicTestsExample.java diff --git a/junit5/src/test/java/com/baeldung/EmployeesTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/EmployeesTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/EmployeesTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/EmployeesTest.java diff --git a/junit5/src/test/java/com/baeldung/ExceptionUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/ExceptionUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/ExceptionUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/ExceptionUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/FirstUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/FirstUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/FirstUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/FirstUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/JUnit5NewFeaturesUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/JUnit5NewFeaturesUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/JUnit5NewFeaturesUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/JUnit5NewFeaturesUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/LiveTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/LiveTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/LiveTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/LiveTest.java diff --git a/junit5/src/test/java/com/baeldung/NestedUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/NestedUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/NestedUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/NestedUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/RepeatedTestExample.java b/testing-modules/junit-5/src/test/java/com/baeldung/RepeatedTestExample.java similarity index 100% rename from junit5/src/test/java/com/baeldung/RepeatedTestExample.java rename to testing-modules/junit-5/src/test/java/com/baeldung/RepeatedTestExample.java diff --git a/junit5/src/test/java/com/baeldung/StringUtils.java b/testing-modules/junit-5/src/test/java/com/baeldung/StringUtils.java similarity index 100% rename from junit5/src/test/java/com/baeldung/StringUtils.java rename to testing-modules/junit-5/src/test/java/com/baeldung/StringUtils.java diff --git a/junit5/src/test/java/com/baeldung/TaggedUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/TaggedUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/TaggedUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/TaggedUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/TestLauncher.java b/testing-modules/junit-5/src/test/java/com/baeldung/TestLauncher.java similarity index 100% rename from junit5/src/test/java/com/baeldung/TestLauncher.java rename to testing-modules/junit-5/src/test/java/com/baeldung/TestLauncher.java diff --git a/junit5/src/test/java/com/baeldung/extensions/EmployeeDaoParameterResolver.java b/testing-modules/junit-5/src/test/java/com/baeldung/extensions/EmployeeDaoParameterResolver.java similarity index 100% rename from junit5/src/test/java/com/baeldung/extensions/EmployeeDaoParameterResolver.java rename to testing-modules/junit-5/src/test/java/com/baeldung/extensions/EmployeeDaoParameterResolver.java diff --git a/junit5/src/test/java/com/baeldung/extensions/EmployeeDatabaseSetupExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/extensions/EmployeeDatabaseSetupExtension.java similarity index 100% rename from junit5/src/test/java/com/baeldung/extensions/EmployeeDatabaseSetupExtension.java rename to testing-modules/junit-5/src/test/java/com/baeldung/extensions/EmployeeDatabaseSetupExtension.java diff --git a/junit5/src/test/java/com/baeldung/extensions/EnvironmentExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/extensions/EnvironmentExtension.java similarity index 100% rename from junit5/src/test/java/com/baeldung/extensions/EnvironmentExtension.java rename to testing-modules/junit-5/src/test/java/com/baeldung/extensions/EnvironmentExtension.java diff --git a/junit5/src/test/java/com/baeldung/extensions/IgnoreFileNotFoundExceptionExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/extensions/IgnoreFileNotFoundExceptionExtension.java similarity index 100% rename from junit5/src/test/java/com/baeldung/extensions/IgnoreFileNotFoundExceptionExtension.java rename to testing-modules/junit-5/src/test/java/com/baeldung/extensions/IgnoreFileNotFoundExceptionExtension.java diff --git a/junit5/src/test/java/com/baeldung/extensions/LoggingExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/extensions/LoggingExtension.java similarity index 100% rename from junit5/src/test/java/com/baeldung/extensions/LoggingExtension.java rename to testing-modules/junit-5/src/test/java/com/baeldung/extensions/LoggingExtension.java diff --git a/junit5/src/test/java/com/baeldung/helpers/Employee.java b/testing-modules/junit-5/src/test/java/com/baeldung/helpers/Employee.java similarity index 100% rename from junit5/src/test/java/com/baeldung/helpers/Employee.java rename to testing-modules/junit-5/src/test/java/com/baeldung/helpers/Employee.java diff --git a/junit5/src/test/java/com/baeldung/helpers/EmployeeDao.java b/testing-modules/junit-5/src/test/java/com/baeldung/helpers/EmployeeDao.java similarity index 100% rename from junit5/src/test/java/com/baeldung/helpers/EmployeeDao.java rename to testing-modules/junit-5/src/test/java/com/baeldung/helpers/EmployeeDao.java diff --git a/junit5/src/test/java/com/baeldung/helpers/EmployeeJdbcDao.java b/testing-modules/junit-5/src/test/java/com/baeldung/helpers/EmployeeJdbcDao.java similarity index 100% rename from junit5/src/test/java/com/baeldung/helpers/EmployeeJdbcDao.java rename to testing-modules/junit-5/src/test/java/com/baeldung/helpers/EmployeeJdbcDao.java diff --git a/junit5/src/test/java/com/baeldung/helpers/JdbcConnectionUtil.java b/testing-modules/junit-5/src/test/java/com/baeldung/helpers/JdbcConnectionUtil.java similarity index 100% rename from junit5/src/test/java/com/baeldung/helpers/JdbcConnectionUtil.java rename to testing-modules/junit-5/src/test/java/com/baeldung/helpers/JdbcConnectionUtil.java diff --git a/junit5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java similarity index 100% rename from junit5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java rename to testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/MockitoExtension.java diff --git a/junit5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit4/AnnotationTestExampleTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/AnnotationTestExampleTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit4/AnnotationTestExampleTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/AnnotationTestExampleTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit4/AssertionsExampleTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/AssertionsExampleTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit4/AssertionsExampleTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/AssertionsExampleTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit4/RuleExampleTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/RuleExampleTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit4/RuleExampleTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/RuleExampleTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit4/categories/Annotations.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/categories/Annotations.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit4/categories/Annotations.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/categories/Annotations.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit4/categories/JUnit4Tests.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/categories/JUnit4Tests.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit4/categories/JUnit4Tests.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/categories/JUnit4Tests.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit4/rules/TraceUnitTestRule.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/rules/TraceUnitTestRule.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit4/rules/TraceUnitTestRule.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit4/rules/TraceUnitTestRule.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit5/AnnotationTestExampleTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AnnotationTestExampleTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit5/AnnotationTestExampleTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AnnotationTestExampleTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit5/AssertionsExampleTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AssertionsExampleTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit5/AssertionsExampleTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/AssertionsExampleTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit5/RuleExampleTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/RuleExampleTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit5/RuleExampleTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/RuleExampleTest.java diff --git a/junit5/src/test/java/com/baeldung/migration/junit5/extensions/TraceUnitExtension.java b/testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/extensions/TraceUnitExtension.java similarity index 100% rename from junit5/src/test/java/com/baeldung/migration/junit5/extensions/TraceUnitExtension.java rename to testing-modules/junit-5/src/test/java/com/baeldung/migration/junit5/extensions/TraceUnitExtension.java diff --git a/junit5/src/test/java/com/baeldung/param/InvalidPersonParameterResolver.java b/testing-modules/junit-5/src/test/java/com/baeldung/param/InvalidPersonParameterResolver.java similarity index 100% rename from junit5/src/test/java/com/baeldung/param/InvalidPersonParameterResolver.java rename to testing-modules/junit-5/src/test/java/com/baeldung/param/InvalidPersonParameterResolver.java diff --git a/junit5/src/test/java/com/baeldung/param/Person.java b/testing-modules/junit-5/src/test/java/com/baeldung/param/Person.java similarity index 100% rename from junit5/src/test/java/com/baeldung/param/Person.java rename to testing-modules/junit-5/src/test/java/com/baeldung/param/Person.java diff --git a/junit5/src/test/java/com/baeldung/param/PersonValidator.java b/testing-modules/junit-5/src/test/java/com/baeldung/param/PersonValidator.java similarity index 100% rename from junit5/src/test/java/com/baeldung/param/PersonValidator.java rename to testing-modules/junit-5/src/test/java/com/baeldung/param/PersonValidator.java diff --git a/junit5/src/test/java/com/baeldung/param/PersonValidatorTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/param/PersonValidatorTest.java similarity index 100% rename from junit5/src/test/java/com/baeldung/param/PersonValidatorTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/param/PersonValidatorTest.java diff --git a/junit5/src/test/java/com/baeldung/param/ValidPersonParameterResolver.java b/testing-modules/junit-5/src/test/java/com/baeldung/param/ValidPersonParameterResolver.java similarity index 100% rename from junit5/src/test/java/com/baeldung/param/ValidPersonParameterResolver.java rename to testing-modules/junit-5/src/test/java/com/baeldung/param/ValidPersonParameterResolver.java diff --git a/junit5/src/test/java/com/baeldung/suites/AllTests.java b/testing-modules/junit-5/src/test/java/com/baeldung/suites/AllTests.java similarity index 100% rename from junit5/src/test/java/com/baeldung/suites/AllTests.java rename to testing-modules/junit-5/src/test/java/com/baeldung/suites/AllTests.java diff --git a/junit5/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/testing-modules/junit-5/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension similarity index 100% rename from junit5/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension rename to testing-modules/junit-5/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension diff --git a/junit5/src/test/resources/com/baeldung/extensions/application.properties b/testing-modules/junit-5/src/test/resources/com/baeldung/extensions/application.properties similarity index 100% rename from junit5/src/test/resources/com/baeldung/extensions/application.properties rename to testing-modules/junit-5/src/test/resources/com/baeldung/extensions/application.properties diff --git a/junit5/src/test/resources/com/baeldung/helpers/jdbc.properties b/testing-modules/junit-5/src/test/resources/com/baeldung/helpers/jdbc.properties similarity index 100% rename from junit5/src/test/resources/com/baeldung/helpers/jdbc.properties rename to testing-modules/junit-5/src/test/resources/com/baeldung/helpers/jdbc.properties diff --git a/mockito2/.gitignore b/testing-modules/mockito-2/.gitignore similarity index 100% rename from mockito2/.gitignore rename to testing-modules/mockito-2/.gitignore diff --git a/mockito2/README.md b/testing-modules/mockito-2/README.md similarity index 100% rename from mockito2/README.md rename to testing-modules/mockito-2/README.md diff --git a/mockito2/pom.xml b/testing-modules/mockito-2/pom.xml similarity index 96% rename from mockito2/pom.xml rename to testing-modules/mockito-2/pom.xml index a7c4683c30..0291ac4ec1 100644 --- a/mockito2/pom.xml +++ b/testing-modules/mockito-2/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.baeldung - mockito2 + mockito-2 0.0.1-SNAPSHOT jar mockito-2-with-java8 @@ -12,6 +12,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/mockito2/src/main/java/com/baeldung/mockito/java8/JobPosition.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/JobPosition.java similarity index 100% rename from mockito2/src/main/java/com/baeldung/mockito/java8/JobPosition.java rename to testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/JobPosition.java diff --git a/mockito2/src/main/java/com/baeldung/mockito/java8/JobService.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/JobService.java similarity index 100% rename from mockito2/src/main/java/com/baeldung/mockito/java8/JobService.java rename to testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/JobService.java diff --git a/mockito2/src/main/java/com/baeldung/mockito/java8/Person.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/Person.java similarity index 100% rename from mockito2/src/main/java/com/baeldung/mockito/java8/Person.java rename to testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/Person.java diff --git a/mockito2/src/main/java/com/baeldung/mockito/java8/UnemploymentService.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/UnemploymentService.java similarity index 100% rename from mockito2/src/main/java/com/baeldung/mockito/java8/UnemploymentService.java rename to testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/UnemploymentService.java diff --git a/mockito2/src/main/java/com/baeldung/mockito/java8/UnemploymentServiceImpl.java b/testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/UnemploymentServiceImpl.java similarity index 100% rename from mockito2/src/main/java/com/baeldung/mockito/java8/UnemploymentServiceImpl.java rename to testing-modules/mockito-2/src/main/java/com/baeldung/mockito/java8/UnemploymentServiceImpl.java diff --git a/mockito2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java similarity index 100% rename from mockito2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithLambdaUnitTest.java diff --git a/mockito2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java similarity index 100% rename from mockito2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/ArgumentMatcherWithoutLambdaUnitTest.java diff --git a/mockito2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java similarity index 100% rename from mockito2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithLambdaUnitTest.java diff --git a/mockito2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java similarity index 100% rename from mockito2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/CustomAnswerWithoutLambdaUnitTest.java diff --git a/mockito2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java similarity index 100% rename from mockito2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/JobServiceUnitTest.java diff --git a/mockito2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java b/testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java similarity index 100% rename from mockito2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java rename to testing-modules/mockito-2/src/test/java/com/baeldung/mockito/java8/UnemploymentServiceImplUnitTest.java diff --git a/mockito/.gitignore b/testing-modules/mockito/.gitignore similarity index 100% rename from mockito/.gitignore rename to testing-modules/mockito/.gitignore diff --git a/mockito/README.md b/testing-modules/mockito/README.md similarity index 100% rename from mockito/README.md rename to testing-modules/mockito/README.md diff --git a/mockito/pom.xml b/testing-modules/mockito/pom.xml similarity index 97% rename from mockito/pom.xml rename to testing-modules/mockito/pom.xml index 19dd2f6468..aa3dd9b20a 100644 --- a/mockito/pom.xml +++ b/testing-modules/mockito/pom.xml @@ -11,6 +11,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/mockito/src/main/resources/logback.xml b/testing-modules/mockito/src/main/resources/logback.xml similarity index 100% rename from mockito/src/main/resources/logback.xml rename to testing-modules/mockito/src/main/resources/logback.xml diff --git a/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorForPartialMocking.java b/testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorForPartialMocking.java similarity index 100% rename from mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorForPartialMocking.java rename to testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorForPartialMocking.java diff --git a/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithFinalMethods.java b/testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithFinalMethods.java similarity index 100% rename from mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithFinalMethods.java rename to testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithFinalMethods.java diff --git a/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithStaticMethods.java b/testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithStaticMethods.java similarity index 100% rename from mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithStaticMethods.java rename to testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/CollaboratorWithStaticMethods.java diff --git a/mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGenerator.java b/testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGenerator.java similarity index 100% rename from mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGenerator.java rename to testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGenerator.java diff --git a/mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGeneratorTest.java b/testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGeneratorTest.java similarity index 100% rename from mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGeneratorTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/LuckyNumberGeneratorTest.java diff --git a/mockito/src/test/java/com/baeldung/powermockito/introduction/PowerMockitoIntegrationTest.java b/testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/PowerMockitoIntegrationTest.java similarity index 100% rename from mockito/src/test/java/com/baeldung/powermockito/introduction/PowerMockitoIntegrationTest.java rename to testing-modules/mockito/src/test/java/com/baeldung/powermockito/introduction/PowerMockitoIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationIntegrationTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationIntegrationTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoAnnotationIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoConfigExamplesIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoExceptionIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoExceptionIntegrationTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoExceptionIntegrationTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoExceptionIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoMockIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoMockIntegrationTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoMockIntegrationTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoMockIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoSpyIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoSpyIntegrationTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoSpyIntegrationTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoSpyIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVerifyExamplesIntegrationTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MockitoVoidMethodsTest.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVoidMethodsTest.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MockitoVoidMethodsTest.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MockitoVoidMethodsTest.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MyDictionary.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MyDictionary.java diff --git a/mockito/src/test/java/org/baeldung/mockito/MyList.java b/testing-modules/mockito/src/test/java/org/baeldung/mockito/MyList.java similarity index 100% rename from mockito/src/test/java/org/baeldung/mockito/MyList.java rename to testing-modules/mockito/src/test/java/org/baeldung/mockito/MyList.java diff --git a/mocks/README.md b/testing-modules/mocks/README.md similarity index 100% rename from mocks/README.md rename to testing-modules/mocks/README.md diff --git a/mocks/jmockit/README.md b/testing-modules/mocks/jmockit/README.md similarity index 100% rename from mocks/jmockit/README.md rename to testing-modules/mocks/jmockit/README.md diff --git a/mocks/jmockit/pom.xml b/testing-modules/mocks/jmockit/pom.xml similarity index 94% rename from mocks/jmockit/pom.xml rename to testing-modules/mocks/jmockit/pom.xml index 173a981e09..d998cb6918 100644 --- a/mocks/jmockit/pom.xml +++ b/testing-modules/mocks/jmockit/pom.xml @@ -6,7 +6,7 @@ com.baeldung mocks 1.0.0-SNAPSHOT - ../pom.xml + ../ jmockit diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/AdvancedCollaborator.java b/testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/AdvancedCollaborator.java similarity index 100% rename from mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/AdvancedCollaborator.java rename to testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/AdvancedCollaborator.java diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java b/testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java similarity index 100% rename from mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java rename to testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/ExpectationsCollaborator.java b/testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/ExpectationsCollaborator.java similarity index 100% rename from mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/ExpectationsCollaborator.java rename to testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/ExpectationsCollaborator.java diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java b/testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java similarity index 100% rename from mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java rename to testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java b/testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java similarity index 100% rename from mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java rename to testing-modules/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java diff --git a/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/AdvancedCollaboratorIntegrationTest.java b/testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/AdvancedCollaboratorIntegrationTest.java similarity index 100% rename from mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/AdvancedCollaboratorIntegrationTest.java rename to testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/AdvancedCollaboratorIntegrationTest.java diff --git a/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ExpectationsIntegrationTest.java b/testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ExpectationsIntegrationTest.java similarity index 100% rename from mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ExpectationsIntegrationTest.java rename to testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ExpectationsIntegrationTest.java diff --git a/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerIntegrationTest.java b/testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerIntegrationTest.java similarity index 100% rename from mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerIntegrationTest.java rename to testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerIntegrationTest.java diff --git a/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ReusingIntegrationTest.java b/testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ReusingIntegrationTest.java similarity index 100% rename from mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ReusingIntegrationTest.java rename to testing-modules/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/ReusingIntegrationTest.java diff --git a/mocks/mock-comparisons/README.md b/testing-modules/mocks/mock-comparisons/README.md similarity index 100% rename from mocks/mock-comparisons/README.md rename to testing-modules/mocks/mock-comparisons/README.md diff --git a/mocks/mock-comparisons/pom.xml b/testing-modules/mocks/mock-comparisons/pom.xml similarity index 96% rename from mocks/mock-comparisons/pom.xml rename to testing-modules/mocks/mock-comparisons/pom.xml index 11bc59d710..84f1d20401 100644 --- a/mocks/mock-comparisons/pom.xml +++ b/testing-modules/mocks/mock-comparisons/pom.xml @@ -6,7 +6,7 @@ com.baeldung mocks 1.0.0-SNAPSHOT - ../pom.xml + ../ mock-comparisons diff --git a/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java b/testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java similarity index 100% rename from mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java rename to testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java diff --git a/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java b/testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java similarity index 100% rename from mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java rename to testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java diff --git a/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java b/testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java similarity index 100% rename from mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java rename to testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java diff --git a/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java b/testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java similarity index 100% rename from mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java rename to testing-modules/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java diff --git a/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerIntegrationTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerIntegrationTest.java similarity index 100% rename from mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerIntegrationTest.java rename to testing-modules/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerIntegrationTest.java diff --git a/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerIntegrationTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerIntegrationTest.java similarity index 100% rename from mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerIntegrationTest.java rename to testing-modules/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerIntegrationTest.java diff --git a/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerIntegrationTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerIntegrationTest.java similarity index 100% rename from mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerIntegrationTest.java rename to testing-modules/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerIntegrationTest.java diff --git a/mocks/pom.xml b/testing-modules/mocks/pom.xml similarity index 92% rename from mocks/pom.xml rename to testing-modules/mocks/pom.xml index 84243a25d2..959c1851d6 100644 --- a/mocks/pom.xml +++ b/testing-modules/mocks/pom.xml @@ -6,7 +6,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT - ../pom.xml + ../ mocks diff --git a/mockserver/README.md b/testing-modules/mockserver/README.md similarity index 100% rename from mockserver/README.md rename to testing-modules/mockserver/README.md diff --git a/mockserver/pom.xml b/testing-modules/mockserver/pom.xml similarity index 100% rename from mockserver/pom.xml rename to testing-modules/mockserver/pom.xml diff --git a/mockserver/src/main/java/com/baeldung/mock/server/ExpectationCallbackHandler.java b/testing-modules/mockserver/src/main/java/com/baeldung/mock/server/ExpectationCallbackHandler.java similarity index 100% rename from mockserver/src/main/java/com/baeldung/mock/server/ExpectationCallbackHandler.java rename to testing-modules/mockserver/src/main/java/com/baeldung/mock/server/ExpectationCallbackHandler.java diff --git a/mockserver/src/test/java/com/baeldung/mock/server/MockServerLiveTest.java b/testing-modules/mockserver/src/test/java/com/baeldung/mock/server/MockServerLiveTest.java similarity index 100% rename from mockserver/src/test/java/com/baeldung/mock/server/MockServerLiveTest.java rename to testing-modules/mockserver/src/test/java/com/baeldung/mock/server/MockServerLiveTest.java diff --git a/rest-assured/.gitignore b/testing-modules/rest-assured/.gitignore similarity index 100% rename from rest-assured/.gitignore rename to testing-modules/rest-assured/.gitignore diff --git a/rest-assured/README.md b/testing-modules/rest-assured/README.md similarity index 100% rename from rest-assured/README.md rename to testing-modules/rest-assured/README.md diff --git a/rest-assured/pom.xml b/testing-modules/rest-assured/pom.xml similarity index 99% rename from rest-assured/pom.xml rename to testing-modules/rest-assured/pom.xml index 3fca54c80f..0c0826c5c3 100644 --- a/rest-assured/pom.xml +++ b/testing-modules/rest-assured/pom.xml @@ -10,6 +10,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/rest-assured/src/test/java/com/baeldung/restassured/RestAssured2IntegrationTest.java b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssured2IntegrationTest.java similarity index 100% rename from rest-assured/src/test/java/com/baeldung/restassured/RestAssured2IntegrationTest.java rename to testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssured2IntegrationTest.java diff --git a/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredIntegrationTest.java b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredIntegrationTest.java similarity index 100% rename from rest-assured/src/test/java/com/baeldung/restassured/RestAssuredIntegrationTest.java rename to testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredIntegrationTest.java diff --git a/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXML2IntegrationTest.java b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXML2IntegrationTest.java similarity index 100% rename from rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXML2IntegrationTest.java rename to testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXML2IntegrationTest.java diff --git a/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXMLIntegrationTest.java b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXMLIntegrationTest.java similarity index 100% rename from rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXMLIntegrationTest.java rename to testing-modules/rest-assured/src/test/java/com/baeldung/restassured/RestAssuredXMLIntegrationTest.java diff --git a/rest-assured/src/test/java/com/baeldung/restassured/Util.java b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/Util.java similarity index 100% rename from rest-assured/src/test/java/com/baeldung/restassured/Util.java rename to testing-modules/rest-assured/src/test/java/com/baeldung/restassured/Util.java diff --git a/rest-assured/src/test/resources/employees.xml b/testing-modules/rest-assured/src/test/resources/employees.xml similarity index 100% rename from rest-assured/src/test/resources/employees.xml rename to testing-modules/rest-assured/src/test/resources/employees.xml diff --git a/rest-assured/src/test/resources/event_0.json b/testing-modules/rest-assured/src/test/resources/event_0.json similarity index 100% rename from rest-assured/src/test/resources/event_0.json rename to testing-modules/rest-assured/src/test/resources/event_0.json diff --git a/rest-assured/src/test/resources/logback.xml b/testing-modules/rest-assured/src/test/resources/logback.xml similarity index 100% rename from rest-assured/src/test/resources/logback.xml rename to testing-modules/rest-assured/src/test/resources/logback.xml diff --git a/rest-assured/src/test/resources/odds.json b/testing-modules/rest-assured/src/test/resources/odds.json similarity index 100% rename from rest-assured/src/test/resources/odds.json rename to testing-modules/rest-assured/src/test/resources/odds.json diff --git a/rest-assured/src/test/resources/teachers.xml b/testing-modules/rest-assured/src/test/resources/teachers.xml similarity index 100% rename from rest-assured/src/test/resources/teachers.xml rename to testing-modules/rest-assured/src/test/resources/teachers.xml diff --git a/rest-testing/.gitignore b/testing-modules/rest-testing/.gitignore similarity index 100% rename from rest-testing/.gitignore rename to testing-modules/rest-testing/.gitignore diff --git a/rest-testing/README.md b/testing-modules/rest-testing/README.md similarity index 100% rename from rest-testing/README.md rename to testing-modules/rest-testing/README.md diff --git a/rest-testing/pom.xml b/testing-modules/rest-testing/pom.xml similarity index 99% rename from rest-testing/pom.xml rename to testing-modules/rest-testing/pom.xml index 74ea5760c4..4b838720da 100644 --- a/rest-testing/pom.xml +++ b/testing-modules/rest-testing/pom.xml @@ -11,6 +11,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/testing-modules/rest-testing/src/main/resources/Feature/cucumber.feature b/testing-modules/rest-testing/src/main/resources/Feature/cucumber.feature new file mode 100644 index 0000000000..99dd8249fe --- /dev/null +++ b/testing-modules/rest-testing/src/main/resources/Feature/cucumber.feature @@ -0,0 +1,10 @@ +Feature: Testing a REST API + Users should be able to submit GET and POST requests to a web service, represented by WireMock + + Scenario: Data Upload to a web service + When users upload data on a project + Then the server should handle it and return a success status + + Scenario: Data retrieval from a web service + When users want to get information on the Cucumber project + Then the requested data is returned \ No newline at end of file diff --git a/rest-testing/src/main/resources/cucumber.json b/testing-modules/rest-testing/src/main/resources/cucumber.json similarity index 100% rename from rest-testing/src/main/resources/cucumber.json rename to testing-modules/rest-testing/src/main/resources/cucumber.json diff --git a/rest-testing/src/main/resources/logback.xml b/testing-modules/rest-testing/src/main/resources/logback.xml similarity index 100% rename from rest-testing/src/main/resources/logback.xml rename to testing-modules/rest-testing/src/main/resources/logback.xml diff --git a/rest-testing/src/main/resources/wiremock_intro.json b/testing-modules/rest-testing/src/main/resources/wiremock_intro.json similarity index 100% rename from rest-testing/src/main/resources/wiremock_intro.json rename to testing-modules/rest-testing/src/main/resources/wiremock_intro.json diff --git a/rest-testing/src/test/java/com/baeldung/rest/cucumber/CucumberIntegrationTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/cucumber/CucumberIntegrationTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/cucumber/CucumberIntegrationTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/cucumber/CucumberIntegrationTest.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/cucumber/StepDefinition.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/cucumber/StepDefinition.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/cucumber/StepDefinition.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/cucumber/StepDefinition.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/AbstractStory.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/AbstractStory.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/AbstractStory.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/AbstractStory.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundSteps.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundSteps.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundSteps.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundSteps.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundStoryLiveTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundStoryLiveTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundStoryLiveTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserNotFoundStoryLiveTest.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeSteps.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeSteps.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeSteps.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeSteps.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeStoryLiveTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeStoryLiveTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeStoryLiveTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponseMediaTypeStoryLiveTest.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadSteps.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadSteps.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadSteps.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadSteps.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadStoryLiveTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadStoryLiveTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadStoryLiveTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/GithubUserResponsePayloadStoryLiveTest.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseSteps.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseSteps.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseSteps.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseSteps.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseStoryLiveTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseStoryLiveTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseStoryLiveTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/jbehave/IncreaseStoryLiveTest.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/JUnitManagedIntegrationTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/JUnitManagedIntegrationTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/JUnitManagedIntegrationTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/JUnitManagedIntegrationTest.java diff --git a/rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/ProgrammaticallyManagedLiveTest.java b/testing-modules/rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/ProgrammaticallyManagedLiveTest.java similarity index 100% rename from rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/ProgrammaticallyManagedLiveTest.java rename to testing-modules/rest-testing/src/test/java/com/baeldung/rest/wiremock/introduction/ProgrammaticallyManagedLiveTest.java diff --git a/rest-testing/src/test/java/org/baeldung/rest/GitHubUser.java b/testing-modules/rest-testing/src/test/java/org/baeldung/rest/GitHubUser.java similarity index 100% rename from rest-testing/src/test/java/org/baeldung/rest/GitHubUser.java rename to testing-modules/rest-testing/src/test/java/org/baeldung/rest/GitHubUser.java diff --git a/rest-testing/src/test/java/org/baeldung/rest/GithubBasicLiveTest.java b/testing-modules/rest-testing/src/test/java/org/baeldung/rest/GithubBasicLiveTest.java similarity index 100% rename from rest-testing/src/test/java/org/baeldung/rest/GithubBasicLiveTest.java rename to testing-modules/rest-testing/src/test/java/org/baeldung/rest/GithubBasicLiveTest.java diff --git a/rest-testing/src/test/java/org/baeldung/rest/RetrieveUtil.java b/testing-modules/rest-testing/src/test/java/org/baeldung/rest/RetrieveUtil.java similarity index 100% rename from rest-testing/src/test/java/org/baeldung/rest/RetrieveUtil.java rename to testing-modules/rest-testing/src/test/java/org/baeldung/rest/RetrieveUtil.java diff --git a/rest-testing/src/test/resources/github_user_not_found.story b/testing-modules/rest-testing/src/test/resources/github_user_not_found.story similarity index 100% rename from rest-testing/src/test/resources/github_user_not_found.story rename to testing-modules/rest-testing/src/test/resources/github_user_not_found.story diff --git a/rest-testing/src/test/resources/github_user_response_mediatype.story b/testing-modules/rest-testing/src/test/resources/github_user_response_mediatype.story similarity index 100% rename from rest-testing/src/test/resources/github_user_response_mediatype.story rename to testing-modules/rest-testing/src/test/resources/github_user_response_mediatype.story diff --git a/rest-testing/src/test/resources/github_user_response_payload.story b/testing-modules/rest-testing/src/test/resources/github_user_response_payload.story similarity index 100% rename from rest-testing/src/test/resources/github_user_response_payload.story rename to testing-modules/rest-testing/src/test/resources/github_user_response_payload.story diff --git a/rest-testing/src/test/resources/increase.story b/testing-modules/rest-testing/src/test/resources/increase.story similarity index 100% rename from rest-testing/src/test/resources/increase.story rename to testing-modules/rest-testing/src/test/resources/increase.story diff --git a/selenium-junit-testng/README.md b/testing-modules/selenium-junit-testng/README.md similarity index 100% rename from selenium-junit-testng/README.md rename to testing-modules/selenium-junit-testng/README.md diff --git a/selenium-junit-testng/geckodriver.mac b/testing-modules/selenium-junit-testng/geckodriver.mac similarity index 100% rename from selenium-junit-testng/geckodriver.mac rename to testing-modules/selenium-junit-testng/geckodriver.mac diff --git a/selenium-junit-testng/pom.xml b/testing-modules/selenium-junit-testng/pom.xml similarity index 97% rename from selenium-junit-testng/pom.xml rename to testing-modules/selenium-junit-testng/pom.xml index faad194b59..14169e5749 100644 --- a/selenium-junit-testng/pom.xml +++ b/testing-modules/selenium-junit-testng/pom.xml @@ -9,6 +9,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java similarity index 100% rename from selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java rename to testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java similarity index 100% rename from selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java rename to testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/config/SeleniumConfig.java diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java similarity index 100% rename from selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java rename to testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/models/BaeldungAbout.java diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java similarity index 100% rename from selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java rename to testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungAboutPage.java diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java similarity index 100% rename from selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java rename to testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/BaeldungHomePage.java diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java b/testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java similarity index 100% rename from selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java rename to testing-modules/selenium-junit-testng/src/main/java/com/baeldung/selenium/pages/StartHerePage.java diff --git a/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java similarity index 100% rename from selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java rename to testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumPageObjectLiveTest.java diff --git a/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java similarity index 100% rename from selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java rename to testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/SeleniumWithJUnitLiveTest.java diff --git a/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java b/testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java similarity index 100% rename from selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java rename to testing-modules/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/SeleniumWithTestNGLiveTest.java diff --git a/testing/README.md b/testing-modules/testing/README.md similarity index 100% rename from testing/README.md rename to testing-modules/testing/README.md diff --git a/testing/pom.xml b/testing-modules/testing/pom.xml similarity index 99% rename from testing/pom.xml rename to testing-modules/testing/pom.xml index 8f5c6ddb3d..3ad503558f 100644 --- a/testing/pom.xml +++ b/testing-modules/testing/pom.xml @@ -10,6 +10,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/testing/src/main/java/com/baeldung/cucumber/Calculator.java b/testing-modules/testing/src/main/java/com/baeldung/cucumber/Calculator.java similarity index 100% rename from testing/src/main/java/com/baeldung/cucumber/Calculator.java rename to testing-modules/testing/src/main/java/com/baeldung/cucumber/Calculator.java diff --git a/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java b/testing-modules/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java similarity index 100% rename from testing/src/main/java/com/baeldung/introductionjukito/Calculator.java rename to testing-modules/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java diff --git a/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java b/testing-modules/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java similarity index 100% rename from testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java rename to testing-modules/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java diff --git a/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java b/testing-modules/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java similarity index 100% rename from testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java rename to testing-modules/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java diff --git a/testing/src/main/java/com/baeldung/junit/Calculator.java b/testing-modules/testing/src/main/java/com/baeldung/junit/Calculator.java similarity index 100% rename from testing/src/main/java/com/baeldung/junit/Calculator.java rename to testing-modules/testing/src/main/java/com/baeldung/junit/Calculator.java diff --git a/testing/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java b/testing-modules/testing/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java similarity index 100% rename from testing/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java rename to testing-modules/testing/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java diff --git a/testing/src/main/java/com/baeldung/lambdabehave/Calculator.java b/testing-modules/testing/src/main/java/com/baeldung/lambdabehave/Calculator.java similarity index 100% rename from testing/src/main/java/com/baeldung/lambdabehave/Calculator.java rename to testing-modules/testing/src/main/java/com/baeldung/lambdabehave/Calculator.java diff --git a/testing/src/main/java/com/baeldung/testing/assertj/Dog.java b/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Dog.java similarity index 100% rename from testing/src/main/java/com/baeldung/testing/assertj/Dog.java rename to testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Dog.java diff --git a/testing/src/main/java/com/baeldung/testing/assertj/Person.java b/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Person.java similarity index 100% rename from testing/src/main/java/com/baeldung/testing/assertj/Person.java rename to testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Person.java diff --git a/testing/src/main/java/com/baeldung/testing/mutation/Palindrome.java b/testing-modules/testing/src/main/java/com/baeldung/testing/mutation/Palindrome.java similarity index 100% rename from testing/src/main/java/com/baeldung/testing/mutation/Palindrome.java rename to testing-modules/testing/src/main/java/com/baeldung/testing/mutation/Palindrome.java diff --git a/testing/src/main/java/com/baeldung/testing/truth/User.java b/testing-modules/testing/src/main/java/com/baeldung/testing/truth/User.java similarity index 100% rename from testing/src/main/java/com/baeldung/testing/truth/User.java rename to testing-modules/testing/src/main/java/com/baeldung/testing/truth/User.java diff --git a/testing/src/main/java/com/baeldung/testing/truth/UserSubject.java b/testing-modules/testing/src/main/java/com/baeldung/testing/truth/UserSubject.java similarity index 100% rename from testing/src/main/java/com/baeldung/testing/truth/UserSubject.java rename to testing-modules/testing/src/main/java/com/baeldung/testing/truth/UserSubject.java diff --git a/testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java b/testing-modules/testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java rename to testing-modules/testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java diff --git a/testing/src/test/java/com/baeldung/junit/AdditionTest.java b/testing-modules/testing/src/test/java/com/baeldung/junit/AdditionTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/junit/AdditionTest.java rename to testing-modules/testing/src/test/java/com/baeldung/junit/AdditionTest.java diff --git a/testing/src/test/java/com/baeldung/junit/BlockingTestRunner.java b/testing-modules/testing/src/test/java/com/baeldung/junit/BlockingTestRunner.java similarity index 100% rename from testing/src/test/java/com/baeldung/junit/BlockingTestRunner.java rename to testing-modules/testing/src/test/java/com/baeldung/junit/BlockingTestRunner.java diff --git a/testing/src/test/java/com/baeldung/junit/CalculatorTest.java b/testing-modules/testing/src/test/java/com/baeldung/junit/CalculatorTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/junit/CalculatorTest.java rename to testing-modules/testing/src/test/java/com/baeldung/junit/CalculatorTest.java diff --git a/testing/src/test/java/com/baeldung/junit/SubstractionTest.java b/testing-modules/testing/src/test/java/com/baeldung/junit/SubstractionTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/junit/SubstractionTest.java rename to testing-modules/testing/src/test/java/com/baeldung/junit/SubstractionTest.java diff --git a/testing/src/test/java/com/baeldung/junit/SuiteTest.java b/testing-modules/testing/src/test/java/com/baeldung/junit/SuiteTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/junit/SuiteTest.java rename to testing-modules/testing/src/test/java/com/baeldung/junit/SuiteTest.java diff --git a/testing/src/test/java/com/baeldung/junit/TestRunner.java b/testing-modules/testing/src/test/java/com/baeldung/junit/TestRunner.java similarity index 100% rename from testing/src/test/java/com/baeldung/junit/TestRunner.java rename to testing-modules/testing/src/test/java/com/baeldung/junit/TestRunner.java diff --git a/testing/src/test/java/com/baeldung/junitparams/SafeAdditionUtilTest.java b/testing-modules/testing/src/test/java/com/baeldung/junitparams/SafeAdditionUtilTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/junitparams/SafeAdditionUtilTest.java rename to testing-modules/testing/src/test/java/com/baeldung/junitparams/SafeAdditionUtilTest.java diff --git a/testing/src/test/java/com/baeldung/junitparams/TestDataProvider.java b/testing-modules/testing/src/test/java/com/baeldung/junitparams/TestDataProvider.java similarity index 100% rename from testing/src/test/java/com/baeldung/junitparams/TestDataProvider.java rename to testing-modules/testing/src/test/java/com/baeldung/junitparams/TestDataProvider.java diff --git a/testing/src/test/java/com/baeldung/lambdabehave/CalculatorTest.java b/testing-modules/testing/src/test/java/com/baeldung/lambdabehave/CalculatorTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/lambdabehave/CalculatorTest.java rename to testing-modules/testing/src/test/java/com/baeldung/lambdabehave/CalculatorTest.java diff --git a/testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java rename to testing-modules/testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java diff --git a/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java diff --git a/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java diff --git a/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java diff --git a/testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java diff --git a/testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java b/testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java diff --git a/testing/src/test/java/com/baeldung/testing/jgotesting/JGoTestingUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/jgotesting/JGoTestingUnitTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/jgotesting/JGoTestingUnitTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/jgotesting/JGoTestingUnitTest.java diff --git a/testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java diff --git a/testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java b/testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java diff --git a/testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java b/testing-modules/testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java similarity index 100% rename from testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java rename to testing-modules/testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java diff --git a/testing/src/test/resources/JunitParamsTestParameters.csv b/testing-modules/testing/src/test/resources/JunitParamsTestParameters.csv similarity index 100% rename from testing/src/test/resources/JunitParamsTestParameters.csv rename to testing-modules/testing/src/test/resources/JunitParamsTestParameters.csv diff --git a/testing/src/test/resources/features/calculator-scenario-outline.feature b/testing-modules/testing/src/test/resources/features/calculator-scenario-outline.feature similarity index 100% rename from testing/src/test/resources/features/calculator-scenario-outline.feature rename to testing-modules/testing/src/test/resources/features/calculator-scenario-outline.feature diff --git a/testing/src/test/resources/features/calculator.feature b/testing-modules/testing/src/test/resources/features/calculator.feature similarity index 100% rename from testing/src/test/resources/features/calculator.feature rename to testing-modules/testing/src/test/resources/features/calculator.feature diff --git a/testing/src/test/resources/features/shopping.feature b/testing-modules/testing/src/test/resources/features/shopping.feature similarity index 100% rename from testing/src/test/resources/features/shopping.feature rename to testing-modules/testing/src/test/resources/features/shopping.feature diff --git a/testng/README.md b/testing-modules/testng/README.md similarity index 100% rename from testng/README.md rename to testing-modules/testng/README.md diff --git a/testng/pom.xml b/testing-modules/testng/pom.xml similarity index 94% rename from testng/pom.xml rename to testing-modules/testng/pom.xml index 0ca775a00c..f7a50954fc 100644 --- a/testng/pom.xml +++ b/testing-modules/testng/pom.xml @@ -11,6 +11,7 @@ com.baeldung parent-modules 1.0.0-SNAPSHOT + ../ diff --git a/testng/src/test/java/com/baeldung/DependentLongRunningUnitTest.java b/testing-modules/testng/src/test/java/com/baeldung/DependentLongRunningUnitTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/DependentLongRunningUnitTest.java rename to testing-modules/testng/src/test/java/com/baeldung/DependentLongRunningUnitTest.java diff --git a/testng/src/test/java/com/baeldung/GroupIntegrationTest.java b/testing-modules/testng/src/test/java/com/baeldung/GroupIntegrationTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/GroupIntegrationTest.java rename to testing-modules/testng/src/test/java/com/baeldung/GroupIntegrationTest.java diff --git a/testng/src/test/java/com/baeldung/MultiThreadedIntegrationTest.java b/testing-modules/testng/src/test/java/com/baeldung/MultiThreadedIntegrationTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/MultiThreadedIntegrationTest.java rename to testing-modules/testng/src/test/java/com/baeldung/MultiThreadedIntegrationTest.java diff --git a/testng/src/test/java/com/baeldung/ParametrizedLongRunningUnitTest.java b/testing-modules/testng/src/test/java/com/baeldung/ParametrizedLongRunningUnitTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/ParametrizedLongRunningUnitTest.java rename to testing-modules/testng/src/test/java/com/baeldung/ParametrizedLongRunningUnitTest.java diff --git a/testng/src/test/java/com/baeldung/PriorityLongRunningUnitTest.java b/testing-modules/testng/src/test/java/com/baeldung/PriorityLongRunningUnitTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/PriorityLongRunningUnitTest.java rename to testing-modules/testng/src/test/java/com/baeldung/PriorityLongRunningUnitTest.java diff --git a/testng/src/test/java/com/baeldung/RegistrationLongRunningUnitTest.java b/testing-modules/testng/src/test/java/com/baeldung/RegistrationLongRunningUnitTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/RegistrationLongRunningUnitTest.java rename to testing-modules/testng/src/test/java/com/baeldung/RegistrationLongRunningUnitTest.java diff --git a/testng/src/test/java/com/baeldung/SignInLongRunningUnitTest.java b/testing-modules/testng/src/test/java/com/baeldung/SignInLongRunningUnitTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/SignInLongRunningUnitTest.java rename to testing-modules/testng/src/test/java/com/baeldung/SignInLongRunningUnitTest.java diff --git a/testng/src/test/java/com/baeldung/SimpleLongRunningUnitTest.java b/testing-modules/testng/src/test/java/com/baeldung/SimpleLongRunningUnitTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/SimpleLongRunningUnitTest.java rename to testing-modules/testng/src/test/java/com/baeldung/SimpleLongRunningUnitTest.java diff --git a/testng/src/test/java/com/baeldung/SummationServiceIntegrationTest.java b/testing-modules/testng/src/test/java/com/baeldung/SummationServiceIntegrationTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/SummationServiceIntegrationTest.java rename to testing-modules/testng/src/test/java/com/baeldung/SummationServiceIntegrationTest.java diff --git a/testng/src/test/java/com/baeldung/TimeOutIntegrationTest.java b/testing-modules/testng/src/test/java/com/baeldung/TimeOutIntegrationTest.java similarity index 100% rename from testng/src/test/java/com/baeldung/TimeOutIntegrationTest.java rename to testing-modules/testng/src/test/java/com/baeldung/TimeOutIntegrationTest.java diff --git a/testng/src/test/java/com/baeldung/reports/CustomisedListener.java b/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedListener.java similarity index 100% rename from testng/src/test/java/com/baeldung/reports/CustomisedListener.java rename to testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedListener.java diff --git a/testng/src/test/java/com/baeldung/reports/CustomisedReports.java b/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedReports.java similarity index 100% rename from testng/src/test/java/com/baeldung/reports/CustomisedReports.java rename to testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedReports.java diff --git a/testng/src/test/resources/logback.xml b/testing-modules/testng/src/test/resources/logback.xml similarity index 100% rename from testng/src/test/resources/logback.xml rename to testing-modules/testng/src/test/resources/logback.xml diff --git a/testng/src/test/resources/parametrized_testng.xml b/testing-modules/testng/src/test/resources/parametrized_testng.xml similarity index 100% rename from testng/src/test/resources/parametrized_testng.xml rename to testing-modules/testng/src/test/resources/parametrized_testng.xml diff --git a/testng/src/test/resources/reportTemplate.html b/testing-modules/testng/src/test/resources/reportTemplate.html similarity index 100% rename from testng/src/test/resources/reportTemplate.html rename to testing-modules/testng/src/test/resources/reportTemplate.html diff --git a/testng/src/test/resources/test_group.xml b/testing-modules/testng/src/test/resources/test_group.xml similarity index 100% rename from testng/src/test/resources/test_group.xml rename to testing-modules/testng/src/test/resources/test_group.xml diff --git a/testng/src/test/resources/test_setup.xml b/testing-modules/testng/src/test/resources/test_setup.xml similarity index 100% rename from testng/src/test/resources/test_setup.xml rename to testing-modules/testng/src/test/resources/test_setup.xml diff --git a/testng/src/test/resources/test_suite.xml b/testing-modules/testng/src/test/resources/test_suite.xml similarity index 100% rename from testng/src/test/resources/test_suite.xml rename to testing-modules/testng/src/test/resources/test_suite.xml