Skip to content

Commit da40807

Browse files
authored
Merge pull request #58 from NetoDevel/feature/fixs-generator-jms-aws-sqs
Feature/fixs generator jms aws sqs
2 parents 4ab5e96 + de69be2 commit da40807

File tree

8 files changed

+174
-7
lines changed

8 files changed

+174
-7
lines changed

generator-core/src/main/java/br/com/generator/core/GeneratorExecutor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public File addDependecies(GeneratorOptions options) throws IOException {
3535
File fileGenerated = new File(options.getDestination());
3636
FileUtils.writeStringToFile(fileGenerated, contentReplaced);
3737

38-
System.out.println("Add dependencies in ".concat(options.getDestination()));
38+
System.out.println("Add dependencies in ".concat(options.getName()));
3939
return fileGenerated;
4040
}
4141

@@ -48,7 +48,7 @@ public File addProperties(GeneratorOptions options) throws IOException {
4848
bufferWritter.close();
4949
fileWritter.close();
5050

51-
System.out.println("Add properties in ".concat(options.getTemplatePath()));
51+
System.out.println("Add properties in ".concat(options.getName()));
5252
System.out.println("\t".concat(options.getProperties()));
5353

5454
return loadFiled;

spring-scaffold-cli/src/main/java/br/com/netodevel/command/template/TemplateHandler.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import br.com.generate.helpers.ScaffoldInfoHelper;
44
import br.com.generator.core.GeneratorOptions;
55
import br.com.templates_java.ComposeTemplate;
6-
import br.com.templates_java.config.jms_aws_sqs.EntryPointMessageGenerator;
7-
import br.com.templates_java.config.jms_aws_sqs.MessageListenerGenerator;
8-
import br.com.templates_java.config.jms_aws_sqs.SQSDependencyGenerator;
9-
import br.com.templates_java.config.jms_aws_sqs.SQSPropertiesGenerator;
6+
import br.com.templates_java.config.jms_aws_sqs.*;
107
import joptsimple.OptionSet;
118
import joptsimple.OptionSpec;
129
import org.springframework.boot.cli.command.options.OptionHandler;
@@ -79,7 +76,8 @@ private ExitStatus generateJmsAwsSQS() {
7976

8077
ComposeTemplate.runAll(scaffoldInfo.getPathPackage(),
8178
asList(new MessageListenerGenerator(generatorOptions), new EntryPointMessageGenerator(generatorOptions),
82-
new SQSDependencyGenerator(sqsDependencyOptions), new SQSPropertiesGenerator(sqsPropertyOptions)));
79+
new ProducerMessageGenerator(generatorOptions), new SQSDependencyGenerator(sqsDependencyOptions),
80+
new SQSPropertiesGenerator(sqsPropertyOptions)));
8381

8482
} catch (IOException | URISyntaxException e) {
8583
System.out.println("ERROR: ".concat(e.getMessage()));
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package br.com.templates_java.config.jms_aws_sqs;
2+
3+
4+
import br.com.generator.core.Generator;
5+
import br.com.generator.core.GeneratorOptions;
6+
7+
import java.io.File;
8+
import java.io.IOException;
9+
10+
public class ProducerMessageGenerator extends Generator {
11+
12+
private GeneratorOptions generatorOptions;
13+
14+
public ProducerMessageGenerator(GeneratorOptions generatorOptions) {
15+
this.generatorOptions = generatorOptions;
16+
}
17+
18+
public File runGenerate() throws IOException {
19+
this.generatorOptions.setTemplatePath("/templates/config/template-producer-message.txt");
20+
this.generatorOptions.setName("ProducerMessage.java");
21+
return generate(this.generatorOptions);
22+
}
23+
24+
}

templates-java/src/main/java/br/com/templates_java/config/jms_aws_sqs/SQSDependencyGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,5 @@ public File runGenerate() throws IOException {
4242
public void output(String pathPackage, String filename) {
4343
System.out.println("Add dependencies in ".concat(pathPackage.concat(filename)));
4444
}
45+
4546
}

templates-java/src/main/java/br/com/templates_java/config/jms_aws_sqs/SQSPropertiesGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public File runGenerate() throws IOException {
2121
"cloud.aws.region.static=us-east-1\n" +
2222
"cloud.aws.stack.auto=false\n" +
2323
"cloud.aws.sqs.queue-name=my-queue.fifo");
24+
this.generatorOptions.setName("application.properties");
2425
return addProperties(this.generatorOptions);
2526
}
2627

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package ${package};
2+
3+
import com.amazonaws.services.sqs.AmazonSQSAsync;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.beans.factory.annotation.Value;
6+
import org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate;
7+
import org.springframework.cloud.aws.messaging.core.SqsMessageHeaders;
8+
import org.springframework.stereotype.Component;
9+
10+
import java.util.HashMap;
11+
import java.util.Map;
12+
import java.util.UUID;
13+
14+
@Component
15+
public class ProducerMessage {
16+
17+
@Value("${cloud.aws.sqs.queue-name}")
18+
private String queueName;
19+
20+
private QueueMessagingTemplate queueMessagingTemplate;
21+
22+
@Autowired
23+
public ProducerMessage(AmazonSQSAsync amazonSqs) {
24+
this.queueMessagingTemplate = new QueueMessagingTemplate(amazonSqs);
25+
}
26+
27+
public void sendMessage() {
28+
this.queueMessagingTemplate.convertAndSend(queueName, "YOUR_MESSAGE_OBJECT", getHeader());
29+
}
30+
31+
private Map<String, Object> getHeader() {
32+
Map<String, Object> headers = new HashMap<>();
33+
headers.put(SqsMessageHeaders.SQS_GROUP_ID_HEADER, UUID.randomUUID().toString());
34+
headers.put(SqsMessageHeaders.SQS_DEDUPLICATION_ID_HEADER, UUID.randomUUID().toString());
35+
headers.put(SqsMessageHeaders.CONTENT_TYPE, "application/json");
36+
return headers;
37+
}
38+
39+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package br.com.templates_java.config.jms_aws_sqs;
2+
3+
import br.com.generator.core.GeneratorOptions;
4+
import br.com.templates_java.helper.LoadTemplateTester;
5+
import org.apache.commons.io.FileUtils;
6+
import org.junit.Before;
7+
import org.junit.Rule;
8+
import org.junit.Test;
9+
import org.junit.rules.TemporaryFolder;
10+
11+
import java.io.File;
12+
import java.io.IOException;
13+
import java.util.HashMap;
14+
15+
import static junit.framework.TestCase.assertEquals;
16+
import static junit.framework.TestCase.assertTrue;
17+
18+
public class ProducerMessageGeneratorTest {
19+
20+
private LoadTemplateTester loadTemplateTester;
21+
22+
@Rule
23+
public TemporaryFolder temporaryFolder = new TemporaryFolder();
24+
25+
private File temporaryPath;
26+
27+
@Before
28+
public void setUp() throws IOException {
29+
temporaryPath = temporaryFolder.newFolder("test-templates");
30+
loadTemplateTester = new LoadTemplateTester();
31+
}
32+
33+
@Test
34+
public void shouldCreateFile() throws IOException {
35+
GeneratorOptions generatorOptions = new GeneratorOptions();
36+
generatorOptions.setDestination(temporaryPath.getAbsolutePath());
37+
38+
HashMap<String, String> keyValue = new HashMap<String, String>();
39+
keyValue.put("${package}", "br.com.example");
40+
generatorOptions.setKeyValue(keyValue);
41+
42+
ProducerMessageGenerator messageListenerGenerator = new ProducerMessageGenerator(generatorOptions);
43+
File file = messageListenerGenerator.runGenerate();
44+
assertTrue(file.exists());
45+
}
46+
47+
@Test
48+
public void shouldReturnContent() throws IOException {
49+
GeneratorOptions generatorOptions = new GeneratorOptions();
50+
generatorOptions.setDestination(temporaryPath.getAbsolutePath());
51+
52+
HashMap<String, String> keyValue = new HashMap<String, String>();
53+
keyValue.put("${package}", "br.com.example");
54+
generatorOptions.setKeyValue(keyValue);
55+
56+
ProducerMessageGenerator messageListenerGenerator = new ProducerMessageGenerator(generatorOptions);
57+
File file = messageListenerGenerator.runGenerate();
58+
59+
String contentReturned = FileUtils.readFileToString(file);
60+
String contentExpected = loadTemplateTester.loadTemplate("/templates/config/template-producer-message-test.txt");
61+
62+
assertEquals(contentExpected, contentReturned);
63+
}
64+
65+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package br.com.example;
2+
3+
import com.amazonaws.services.sqs.AmazonSQSAsync;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.beans.factory.annotation.Value;
6+
import org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate;
7+
import org.springframework.cloud.aws.messaging.core.SqsMessageHeaders;
8+
import org.springframework.stereotype.Component;
9+
10+
import java.util.HashMap;
11+
import java.util.Map;
12+
import java.util.UUID;
13+
14+
@Component
15+
public class ProducerMessage {
16+
17+
@Value("${cloud.aws.sqs.queue-name}")
18+
private String queueName;
19+
20+
private QueueMessagingTemplate queueMessagingTemplate;
21+
22+
@Autowired
23+
public ProducerMessage(AmazonSQSAsync amazonSqs) {
24+
this.queueMessagingTemplate = new QueueMessagingTemplate(amazonSqs);
25+
}
26+
27+
public void sendMessage() {
28+
this.queueMessagingTemplate.convertAndSend(queueName, "YOUR_MESSAGE_OBJECT", getHeader());
29+
}
30+
31+
private Map<String, Object> getHeader() {
32+
Map<String, Object> headers = new HashMap<>();
33+
headers.put(SqsMessageHeaders.SQS_GROUP_ID_HEADER, UUID.randomUUID().toString());
34+
headers.put(SqsMessageHeaders.SQS_DEDUPLICATION_ID_HEADER, UUID.randomUUID().toString());
35+
headers.put(SqsMessageHeaders.CONTENT_TYPE, "application/json");
36+
return headers;
37+
}
38+
39+
}

0 commit comments

Comments
 (0)