Skip to content

Commit 44b1d9d

Browse files
committed
Initial version for GitHub
1 parent 02fcf0f commit 44b1d9d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+4659
-2
lines changed

.classpath

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" output="target/classes" path="src/main/java">
4+
<attributes>
5+
<attribute name="optional" value="true"/>
6+
<attribute name="maven.pomderived" value="true"/>
7+
</attributes>
8+
</classpathentry>
9+
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
10+
<attributes>
11+
<attribute name="maven.pomderived" value="true"/>
12+
</attributes>
13+
</classpathentry>
14+
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
15+
<attributes>
16+
<attribute name="optional" value="true"/>
17+
<attribute name="maven.pomderived" value="true"/>
18+
</attributes>
19+
</classpathentry>
20+
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
21+
<attributes>
22+
<attribute name="maven.pomderived" value="true"/>
23+
</attributes>
24+
</classpathentry>
25+
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
26+
<attributes>
27+
<attribute name="maven.pomderived" value="true"/>
28+
</attributes>
29+
</classpathentry>
30+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
31+
<attributes>
32+
<attribute name="maven.pomderived" value="true"/>
33+
</attributes>
34+
</classpathentry>
35+
<classpathentry kind="output" path="target/classes"/>
36+
</classpath>

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/target/

.project

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>amazon-sqs-java-temporary-queues-client</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.eclipse.m2e.core.maven2Builder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
</buildSpec>
19+
<natures>
20+
<nature>org.eclipse.jdt.core.javanature</nature>
21+
<nature>org.eclipse.m2e.core.maven2Nature</nature>
22+
</natures>
23+
</projectDescription>

README.md

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,48 @@
1-
## Amazon Sqs Java Temporary Queues Client
1+
## Amazon SQS Java Temporary Queues Client
22

3-
An Amazon SQS client that supports creating lightweight, automatically-deleted temporary queues, for use in common messaging patterns such as Request/Response. See http://aws.amazon.com/sqs.
3+
An Amazon SQS client that supports creating lightweight, automatically-deleted temporary queues, for use in common messaging patterns such as Request/Response.
4+
5+
This library provides two complimentary interfaces for two-way communication through queues:
6+
7+
* an `AmazonSQSRequester` [interface](./src/main/java/com/amazonaws/services/sqs/AmazonSQSRequester.java)
8+
enabling message producers to send a message and wait for a corresponding response message, and
9+
* an `AmazonSQSResponder`
10+
[interface](./src/main/java/com/amazonaws/services/sqs/AmazonSQSResponder.java)
11+
enabling message consumers to send response messages.
12+
13+
To implement this pattern efficiently, the `AmazonSQSRequester` client creates internal temporary queues to hold response messages. The temporary queues architecture scales
14+
to an arbitrary number of message producer runtimes, with no danger of response messages being consumed by the wrong client.
15+
The temporary queues are also guaranteed to be automatically deleted if the clients that created them die ungracefully!
16+
By default, these internal queues are created with the queue name prefix `"__RequesterClientQueues__"`, but this can be customized when
17+
[building](./src/main/java/com/amazonaws/services/sqs/AmazonSQSRequesterClientBuilder.java)
18+
the requester client.
19+
20+
This library is currently in developer preview and we look forward to community feedback and collaboration! The internal components used to implement the
21+
Request/Response interfaces have other applications, and we plan to make more of them accessible for other use cases in the future.
22+
23+
## Getting Started
24+
25+
* **Sign up for AWS** -- Before you begin, you need an AWS account. For more information about creating an AWS account and retrieving your AWS credentials, see [AWS Account and Credentials](http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-setup.html) in the AWS SDK for Java Developer Guide.
26+
* **Sign up for Amazon SQS** -- Go to the Amazon [SQS console](https://console.aws.amazon.com/sqs/home?region=us-east-1) to sign up for the service.
27+
* **Minimum requirements** -- To use this client, you'll need Java 8 (or later) and [Maven 3](http://maven.apache.org/).
28+
* **Download** -- Download the [latest preview release](https://github.com/awslabs/amazon-sqs-java-temporary-queues-client/releases) or pick it up from Maven:
29+
```xml
30+
<dependency>
31+
<groupId>com.amazonaws</groupId>
32+
<artifactId>amazon-sqs-java-temporary-queues-client</artifactId>
33+
<version>0.9.0</version>
34+
<type>jar</type>
35+
</dependency>
36+
```
37+
* **Samples** -- Sample code using this library is available [here](https://github.com/aws-samples/amazon-sqs-java-temporary-queues-client-samples).
38+
* **Further information** - Read the [API documentation](http://aws.amazon.com/documentation/sqs/).
39+
40+
## Feedback
41+
* Give us feedback [here](https://github.com/awslabs/amazon-sqs-java-temporary-queues-client/issues).
42+
* If you'd like to contribute a new feature or bug fix, we'd love to see Github pull requests from you!
443

544
## License
645

746
This library is licensed under the Apache 2.0 License.
47+
48+
See [LICENSE](./LICENSE) and [NOTICE](./NOTICE) for more information.

pom.xml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<modelVersion>4.0.0</modelVersion>
3+
<groupId>com.amazonaws</groupId>
4+
<artifactId>amazon-sqs-java-temporary-queues-client</artifactId>
5+
<version>0.9.0</version>
6+
<name>Amazon SQS Java Temporary Queues Client</name>
7+
<description>An Amazon SQS client that supports creating lightweight, automatically-deleted temporary queues, for use in common messaging patterns such as Request/Response. See http://aws.amazon.com/sqs.</description>
8+
<url>https://github.com/awslabs/amazon-sqs-java-temporary-queues-client</url>
9+
<scm>
10+
<url>https://github.com/aws/amazon-sqs-java-temporary-queues-client.git</url>
11+
</scm>
12+
<licenses>
13+
<license>
14+
<name>Apache License, Version 2.0</name>
15+
<url>https://aws.amazon.com/apache2.0</url>
16+
<distribution>repo</distribution>
17+
</license>
18+
</licenses>
19+
<developers>
20+
<developer>
21+
<id>amazonwebservices</id>
22+
<organization>Amazon Web Services</organization>
23+
<organizationUrl>https://aws.amazon.com</organizationUrl>
24+
<roles>
25+
<role>developer</role>
26+
</roles>
27+
</developer>
28+
</developers>
29+
<properties>
30+
<aws-java-sdk.version>1.11.300</aws-java-sdk.version>
31+
</properties>
32+
33+
<dependencyManagement>
34+
<dependencies>
35+
<dependency>
36+
<groupId>com.amazonaws</groupId>
37+
<artifactId>aws-java-sdk-bom</artifactId>
38+
<version>1.11.446</version>
39+
<type>pom</type>
40+
<scope>import</scope>
41+
</dependency>
42+
</dependencies>
43+
</dependencyManagement>
44+
45+
<dependencies>
46+
<dependency>
47+
<groupId>com.amazonaws</groupId>
48+
<artifactId>aws-java-sdk-sqs</artifactId>
49+
</dependency>
50+
51+
<dependency>
52+
<groupId>junit</groupId>
53+
<artifactId>junit</artifactId>
54+
<version>4.11</version>
55+
<scope>test</scope>
56+
</dependency>
57+
<dependency>
58+
<groupId>org.mockito</groupId>
59+
<artifactId>mockito-core</artifactId>
60+
<version>2.10.0</version>
61+
<scope>test</scope>
62+
</dependency>
63+
</dependencies>
64+
65+
<build>
66+
<pluginManagement>
67+
<plugins>
68+
<plugin>
69+
<groupId>org.apache.maven.plugins</groupId>
70+
<artifactId>maven-compiler-plugin</artifactId>
71+
<version>3.2</version>
72+
<configuration>
73+
<source>1.8</source>
74+
<target>1.8</target>
75+
<encoding>UTF-8</encoding>
76+
</configuration>
77+
</plugin>
78+
<plugin>
79+
<groupId>org.apache.maven.plugins</groupId>
80+
<artifactId>maven-failsafe-plugin</artifactId>
81+
<version>3.0.0-M1</version>
82+
<executions>
83+
<execution>
84+
<goals>
85+
<goal>integration-test</goal>
86+
<goal>verify</goal>
87+
</goals>
88+
</execution>
89+
</executions>
90+
</plugin>
91+
</plugins>
92+
</pluginManagement>
93+
</build>
94+
</project>

0 commit comments

Comments
 (0)