diff --git a/.travis.yml b/.travis.yml
index 677d78b..50831a7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,8 +25,10 @@ install:
script:
# Test with the defaults
- sbt new file://$(pwd) --name=hello && pushd hello && sbt test && popd
- # Test with custom name/organization to ensure templating is done correctly
- - sbt new file://$(pwd) --name=smello --organization=org.eggsample && cd smello && sbt test
+ # Test with custom name/organization to ensure templating is done correctly
+ - sbt new file://$(pwd) --name=smello --organization=org.eggsample && pushd smello && sbt test && popd
+ # Test Maven Archetype
+ - test-archetype.sh
cache:
directories:
diff --git a/src/main/g8/.sbtopts b/src/main/g8/$if(!mavenArchetype.truthy)$.sbtopts$endif$
similarity index 100%
rename from src/main/g8/.sbtopts
rename to src/main/g8/$if(!mavenArchetype.truthy)$.sbtopts$endif$
diff --git a/src/main/g8/README.md b/src/main/g8/$if(!mavenArchetype.truthy)$README.md$endif$
similarity index 100%
rename from src/main/g8/README.md
rename to src/main/g8/$if(!mavenArchetype.truthy)$README.md$endif$
diff --git a/src/main/g8/build.sbt b/src/main/g8/$if(!mavenArchetype.truthy)$build.sbt$endif$
similarity index 100%
rename from src/main/g8/build.sbt
rename to src/main/g8/$if(!mavenArchetype.truthy)$build.sbt$endif$
diff --git a/src/main/g8/project/build.properties b/src/main/g8/$if(!mavenArchetype.truthy)$project$endif$/$if(!mavenArchetype.truthy)$build.properties$endif$
similarity index 100%
rename from src/main/g8/project/build.properties
rename to src/main/g8/$if(!mavenArchetype.truthy)$project$endif$/$if(!mavenArchetype.truthy)$build.properties$endif$
diff --git a/src/main/g8/project/plugins.sbt b/src/main/g8/$if(!mavenArchetype.truthy)$project$endif$/$if(!mavenArchetype.truthy)$plugins.sbt$endif$
similarity index 100%
rename from src/main/g8/project/plugins.sbt
rename to src/main/g8/$if(!mavenArchetype.truthy)$project$endif$/$if(!mavenArchetype.truthy)$plugins.sbt$endif$
diff --git a/src/main/g8/$if(mavenArchetype.truthy)$META-INF$endif$/$if(mavenArchetype.truthy)$maven$endif$/$if(mavenArchetype.truthy)$archetype-metadata.xml$endif$ b/src/main/g8/$if(mavenArchetype.truthy)$META-INF$endif$/$if(mavenArchetype.truthy)$maven$endif$/$if(mavenArchetype.truthy)$archetype-metadata.xml$endif$
new file mode 100644
index 0000000..b33d799
--- /dev/null
+++ b/src/main/g8/$if(mavenArchetype.truthy)$META-INF$endif$/$if(mavenArchetype.truthy)$maven$endif$/$if(mavenArchetype.truthy)$archetype-metadata.xml$endif$
@@ -0,0 +1,42 @@
+
+
+
+
+ hello
+
+
+ Hello
+
+
+
+ 2.12
+ \d+\.\d+
+
+
+
+
+
+
+
+
+
+ **/*
+
+
+ pom.xml
+ LICENSE
+
+
+
+
+
diff --git a/src/main/g8/$name__norm$-api/src/main/java/$package$/api/$name__Camel$Event.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Event.java
similarity index 55%
rename from src/main/g8/$name__norm$-api/src/main/java/$package$/api/$name__Camel$Event.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Event.java
index a30ecc3..3d125d2 100644
--- a/src/main/g8/$name__norm$-api/src/main/java/$package$/api/$name__Camel$Event.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Event.java
@@ -1,4 +1,4 @@
-package $package$.api;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonSubTypes;
@@ -8,13 +8,13 @@
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
@JsonSubTypes({
- @JsonSubTypes.Type(value = $name;format="Camel"$Event.GreetingMessageChanged.class, name = "greeting-message-changed")
+ @JsonSubTypes.Type(value = $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged.class, name = "greeting-message-changed")
})
-public interface $name;format="Camel"$Event {
+public interface $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event {
String getName();
@Value
- final class GreetingMessageChanged implements $name;format="Camel"$Event {
+ final class GreetingMessageChanged implements $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event {
public final String name;
public final String message;
diff --git a/src/main/g8/$name__norm$-api/src/main/java/$package$/api/$name__Camel$Service.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Service.java
similarity index 70%
rename from src/main/g8/$name__norm$-api/src/main/java/$package$/api/$name__Camel$Service.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Service.java
index c1431b9..5fafce8 100644
--- a/src/main/g8/$name__norm$-api/src/main/java/$package$/api/$name__Camel$Service.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Service.java
@@ -1,4 +1,4 @@
-package $package$.api;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api;
import akka.Done;
import akka.NotUsed;
@@ -11,12 +11,12 @@
import static com.lightbend.lagom.javadsl.api.Service.*;
/**
- * The $name;format="camel"$ service interface.
+ * The $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$ service interface.
*
* This describes everything that Lagom needs to know about how to serve and
- * consume the $name;format="Camel"$Service.
+ * consume the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service.
*/
-public interface $name;format="Camel"$Service extends Service {
+public interface $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service extends Service {
/**
* Example:
* curl http://localhost:9000/api/hello/Alice
@@ -32,11 +32,11 @@ public interface $name;format="Camel"$Service extends Service {
/**
* This gets published to Kafka.
*/
- Topic<$name;format="Camel"$Event> helloEvents();
+ Topic<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event> helloEvents();
@Override
default Descriptor descriptor() {
- return named("$name;format="camel"$")
+ return named("$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$")
.withCalls(
pathCall("/api/hello/:id", this::hello),
pathCall("/api/hello/:id", this::useGreeting)
@@ -48,7 +48,7 @@ default Descriptor descriptor() {
// go to the same partition (and hence are delivered in order with respect
// to that user), we configure a partition key strategy that extracts the
// name as the partition key.
- .withProperty(KafkaProperties.partitionKeyStrategy(), $name;format="Camel"$Event::getName)
+ .withProperty(KafkaProperties.partitionKeyStrategy(), $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event::getName)
)
.withAutoAcl(true);
}
diff --git a/src/main/g8/$name__norm$-api/src/main/java/$package$/api/GreetingMessage.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/GreetingMessage.java
similarity index 82%
rename from src/main/g8/$name__norm$-api/src/main/java/$package$/api/GreetingMessage.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/GreetingMessage.java
index adb73e8..4a5df75 100644
--- a/src/main/g8/$name__norm$-api/src/main/java/$package$/api/GreetingMessage.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/api/GreetingMessage.java
@@ -1,4 +1,4 @@
-package $package$.api;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
diff --git a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Command.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Command.java
similarity index 67%
rename from src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Command.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Command.java
index b1d2856..72690fc 100644
--- a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Command.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Command.java
@@ -1,4 +1,4 @@
-package $package$.impl;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
import akka.Done;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -10,13 +10,13 @@
import lombok.Value;
/**
- * This interface defines all the commands that the $name;format="Camel"$Entity supports.
+ * This interface defines all the commands that the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity supports.
*
* By convention, the commands should be inner classes of the interface, which
* makes it simple to get a complete picture of what commands an entity
* supports.
*/
-public interface $name;format="Camel"$Command extends Jsonable {
+public interface $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command extends Jsonable {
/**
* A command to switch the greeting message.
*
@@ -26,7 +26,7 @@ public interface $name;format="Camel"$Command extends Jsonable {
@SuppressWarnings("serial")
@Value
@JsonDeserialize
- final class UseGreetingMessage implements $name;format="Camel"$Command, CompressedJsonable, PersistentEntity.ReplyType {
+ final class UseGreetingMessage implements $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command, CompressedJsonable, PersistentEntity.ReplyType {
public final String message;
@JsonCreator
@@ -44,7 +44,7 @@ final class UseGreetingMessage implements $name;format="Camel"$Command, Compress
@SuppressWarnings("serial")
@Value
@JsonDeserialize
- final class Hello implements $name;format="Camel"$Command, PersistentEntity.ReplyType {
+ final class Hello implements $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command, PersistentEntity.ReplyType {
public final String name;
@JsonCreator
diff --git a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Entity.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Entity.java
similarity index 64%
rename from src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Entity.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Entity.java
index 0479aa6..21c8d9c 100644
--- a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Entity.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Entity.java
@@ -1,4 +1,4 @@
-package $package$.impl;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
import akka.Done;
import com.lightbend.lagom.javadsl.persistence.PersistentEntity;
@@ -6,12 +6,12 @@
import java.time.LocalDateTime;
import java.util.Optional;
-import $package$.impl.$name;format="Camel"$Command.Hello;
-import $package$.impl.$name;format="Camel"$Command.UseGreetingMessage;
-import $package$.impl.$name;format="Camel"$Event.GreetingMessageChanged;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command.Hello;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command.UseGreetingMessage;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged;
/**
- * This is an event sourced entity. It has a state, {@link $name;format="Camel"$State}, which
+ * This is an event sourced entity. It has a state, {@link $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State}, which
* stores what the greeting should be (eg, "Hello").
*
* Event sourced entities are interacted with by sending them commands. This
@@ -29,13 +29,13 @@
* This entity defines one event, the {@link GreetingMessageChanged} event,
* which is emitted when a {@link UseGreetingMessage} command is received.
*/
-public class $name;format="Camel"$Entity extends PersistentEntity<$name;format="Camel"$Command, $name;format="Camel"$Event, $name;format="Camel"$State> {
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity extends PersistentEntity<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State> {
/**
* An entity can define different behaviours for different states, but it will
* always start with an initial behaviour. This entity only has one behaviour.
*/
@Override
- public Behavior initialBehavior(Optional<$name;format="Camel"$State> snapshotState) {
+ public Behavior initialBehavior(Optional<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State> snapshotState) {
/*
* Behaviour is defined using a behaviour builder. The behaviour builder
* starts with a state, if this entity supports snapshotting (an
@@ -46,7 +46,7 @@ public class $name;format="Camel"$Entity extends PersistentEntity<$name;format="
* Otherwise, the default state is to use the Hello greeting.
*/
BehaviorBuilder b = newBehaviorBuilder(
- snapshotState.orElse(new $name;format="Camel"$State("Hello", LocalDateTime.now().toString()))
+ snapshotState.orElse(new $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State("Hello", LocalDateTime.now().toString()))
);
/*
@@ -67,7 +67,7 @@ public class $name;format="Camel"$Entity extends PersistentEntity<$name;format="
b.setEventHandler(GreetingMessageChanged.class,
// We simply update the current state to use the greeting message from
// the event.
- evt -> new $name;format="Camel"$State(evt.message, LocalDateTime.now().toString())
+ evt -> new $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State(evt.message, LocalDateTime.now().toString())
);
/*
diff --git a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Event.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Event.java
similarity index 59%
rename from src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Event.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Event.java
index d2949ab..ac47cdd 100644
--- a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$Event.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Event.java
@@ -1,4 +1,4 @@
-package $package$.impl;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -11,19 +11,19 @@
import lombok.Value;
/**
- * This interface defines all the events that the $name;format="Camel"$Entity supports.
+ * This interface defines all the events that the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity supports.
*
* By convention, the events should be inner classes of the interface, which
* makes it simple to get a complete picture of what events an entity has.
*/
-public interface $name;format="Camel"$Event extends Jsonable, AggregateEvent<$name;format="Camel"$Event> {
+public interface $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event extends Jsonable, AggregateEvent<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event> {
/**
* Tags are used for getting and publishing streams of events. Each event
* will have this tag, and in this case, we are partitioning the tags into
* 4 shards, which means we can have 4 concurrent processors/publishers of
* events.
*/
- AggregateEventShards<$name;format="Camel"$Event> TAG = AggregateEventTag.sharded($name;format="Camel"$Event.class, 4);
+ AggregateEventShards<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event> TAG = AggregateEventTag.sharded($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.class, 4);
/**
* An event that represents a change in greeting message.
@@ -31,7 +31,7 @@ public interface $name;format="Camel"$Event extends Jsonable, AggregateEvent<$na
@SuppressWarnings("serial")
@Value
@JsonDeserialize
- final class GreetingMessageChanged implements $name;format="Camel"$Event {
+ final class GreetingMessageChanged implements $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event {
public final String name;
public final String message;
@@ -43,7 +43,7 @@ final class GreetingMessageChanged implements $name;format="Camel"$Event {
}
@Override
- default AggregateEventTagger<$name;format="Camel"$Event> aggregateTag() {
+ default AggregateEventTagger<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event> aggregateTag() {
return TAG;
}
}
diff --git a/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Module.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Module.java
new file mode 100644
index 0000000..34b8c29
--- /dev/null
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$Module.java
@@ -0,0 +1,16 @@
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
+
+import com.google.inject.AbstractModule;
+import com.lightbend.lagom.javadsl.server.ServiceGuiceSupport;
+
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
+
+/**
+ * The module that binds the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service so that it can be served.
+ */
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Module extends AbstractModule implements ServiceGuiceSupport {
+ @Override
+ protected void configure() {
+ bindService($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service.class, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$ServiceImpl.class);
+ }
+}
diff --git a/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$ServiceImpl.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$ServiceImpl.java
new file mode 100644
index 0000000..2d21291
--- /dev/null
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$ServiceImpl.java
@@ -0,0 +1,77 @@
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
+
+import akka.Done;
+import akka.NotUsed;
+import akka.japi.Pair;
+import com.lightbend.lagom.javadsl.api.ServiceCall;
+import com.lightbend.lagom.javadsl.api.broker.Topic;
+import com.lightbend.lagom.javadsl.broker.TopicProducer;
+import com.lightbend.lagom.javadsl.persistence.PersistentEntityRef;
+import com.lightbend.lagom.javadsl.persistence.PersistentEntityRegistry;
+
+import javax.inject.Inject;
+
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.GreetingMessage;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command.*;
+
+/**
+ * Implementation of the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service.
+ */
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$ServiceImpl implements $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service {
+ private final PersistentEntityRegistry persistentEntityRegistry;
+
+ @Inject
+ public $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$ServiceImpl(PersistentEntityRegistry persistentEntityRegistry) {
+ this.persistentEntityRegistry = persistentEntityRegistry;
+ persistentEntityRegistry.register($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity.class);
+ }
+
+ @Override
+ public ServiceCall hello(String id) {
+ return request -> {
+ // Look up the hello world entity for the given ID.
+ PersistentEntityRef<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command> ref = persistentEntityRegistry.refFor($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity.class, id);
+ // Ask the entity the Hello command.
+ return ref.ask(new Hello(id));
+ };
+ }
+
+ @Override
+ public ServiceCall useGreeting(String id) {
+ return request -> {
+ // Look up the hello world entity for the given ID.
+ PersistentEntityRef<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command> ref = persistentEntityRegistry.refFor($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity.class, id);
+ // Tell the entity to use the greeting message specified.
+ return ref.ask(new UseGreetingMessage(request.message));
+ };
+ }
+
+ @Override
+ public Topic<$if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event> helloEvents() {
+ // We want to publish all the shards of the hello event
+ return TopicProducer.taggedStreamWithOffset($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.TAG.allTags(), (tag, offset) ->
+ // Load the event stream for the passed in shard tag
+ persistentEntityRegistry.eventStream(tag, offset).map(eventAndOffset -> {
+ // Now we want to convert from the persisted event to the published event.
+ // Although these two events are currently identical, in future they may
+ // change and need to evolve separately, by separating them now we save
+ // a lot of potential trouble in future.
+ $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event eventToPublish;
+
+ if (eventAndOffset.first() instanceof $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged) {
+ $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged messageChanged = ($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged) eventAndOffset.first();
+ eventToPublish = new $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged(
+ messageChanged.getName(), messageChanged.getMessage()
+ );
+ } else {
+ throw new IllegalArgumentException("Unknown event: " + eventAndOffset.first());
+ }
+
+ // We return a pair of the translated event, and its offset, so that
+ // Lagom can track which offsets have been published.
+ return Pair.create(eventToPublish, eventAndOffset.second());
+ })
+ );
+ }
+}
diff --git a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$State.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$State.java
similarity index 53%
rename from src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$State.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$State.java
index 4389971..2a0e1e9 100644
--- a/src/main/g8/$name__norm$-impl/src/main/java/$package$/impl/$name__Camel$State.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$State.java
@@ -1,4 +1,4 @@
-package $package$.impl;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -7,17 +7,17 @@
import lombok.Value;
/**
- * The state for the {@link $name;format="Camel"$Entity} entity.
+ * The state for the {@link $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity} entity.
*/
@SuppressWarnings("serial")
@Value
@JsonDeserialize
-public final class $name;format="Camel"$State implements CompressedJsonable {
+public final class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State implements CompressedJsonable {
public final String message;
public final String timestamp;
@JsonCreator
- $name;format="Camel"$State(String message, String timestamp) {
+ $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State(String message, String timestamp) {
this.message = Preconditions.checkNotNull(message, "message");
this.timestamp = Preconditions.checkNotNull(timestamp, "timestamp");
}
diff --git a/src/main/g8/$name__norm$-impl/src/main/resources/application.conf b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/resources/application.conf
similarity index 81%
rename from src/main/g8/$name__norm$-impl/src/main/resources/application.conf
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/resources/application.conf
index 8af9aee..4b87ae6 100644
--- a/src/main/g8/$name__norm$-impl/src/main/resources/application.conf
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/main/resources/application.conf
@@ -1,4 +1,4 @@
-play.modules.enabled += $package$.impl.$name;format="Camel"$Module
+play.modules.enabled += $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Module
$name;format="norm"$.cassandra.keyspace = $name;format="lower,snake,word"$
diff --git a/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$EntityTest.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$EntityTest.java
new file mode 100644
index 0000000..43ebd60
--- /dev/null
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$EntityTest.java
@@ -0,0 +1,53 @@
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
+
+import akka.Done;
+import akka.actor.ActorSystem;
+import akka.testkit.javadsl.TestKit;
+import com.lightbend.lagom.javadsl.testkit.PersistentEntityTestDriver;
+import com.lightbend.lagom.javadsl.testkit.PersistentEntityTestDriver.Outcome;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.Collections;
+
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command.Hello;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command.UseGreetingMessage;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event.GreetingMessageChanged;
+
+import static org.junit.Assert.assertEquals;
+
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$EntityTest {
+ private static ActorSystem system;
+
+ @BeforeClass
+ public static void setup() {
+ system = ActorSystem.create("$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$EntityTest");
+ }
+
+ @AfterClass
+ public static void teardown() {
+ TestKit.shutdownActorSystem(system);
+ system = null;
+ }
+
+ @Test
+ public void test$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity() {
+ PersistentEntityTestDriver<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Command, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State> driver = new PersistentEntityTestDriver<>(system,
+ new $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Entity(), "world-1");
+
+ Outcome<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State> outcome1 = driver.run(new Hello("Alice"));
+ assertEquals("Hello, Alice!", outcome1.getReplies().get(0));
+ assertEquals(Collections.emptyList(), outcome1.issues());
+
+ Outcome<$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Event, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$State> outcome2 = driver.run(new UseGreetingMessage("Hi"),
+ new Hello("Bob"));
+ assertEquals(1, outcome2.events().size());
+ assertEquals(new GreetingMessageChanged("world-1", "Hi"), outcome2.events().get(0));
+ assertEquals("Hi", outcome2.state().message);
+ assertEquals(Done.getInstance(), outcome2.getReplies().get(0));
+ assertEquals("Hi, Bob!", outcome2.getReplies().get(1));
+ assertEquals(2, outcome2.getReplies().size());
+ assertEquals(Collections.emptyList(), outcome2.issues());
+ }
+}
diff --git a/src/main/g8/$name__norm$-impl/src/test/java/$package$/impl/$name__Camel$ServiceTest.java b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$ServiceTest.java
similarity index 58%
rename from src/main/g8/$name__norm$-impl/src/test/java/$package$/impl/$name__Camel$ServiceTest.java
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$ServiceTest.java
index 13099c6..5a6d452 100644
--- a/src/main/g8/$name__norm$-impl/src/test/java/$package$/impl/$name__Camel$ServiceTest.java
+++ b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$$endif$/$if(mavenArchetype.truthy)$__serviceName__$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$ServiceTest.java
@@ -1,20 +1,20 @@
-package $package$.impl;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.impl;
import org.junit.Test;
-import $package$.api.GreetingMessage;
-import $package$.api.$name;format="Camel"$Service;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.GreetingMessage;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
import static com.lightbend.lagom.javadsl.testkit.ServiceTest.defaultSetup;
import static com.lightbend.lagom.javadsl.testkit.ServiceTest.withServer;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.junit.Assert.assertEquals;
-public class $name;format="Camel"$ServiceTest {
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$ServiceTest {
@Test
public void shouldStorePersonalizedGreeting() {
withServer(defaultSetup().withCassandra(), server -> {
- $name;format="Camel"$Service service = server.client($name;format="Camel"$Service.class);
+ $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service service = server.client($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service.class);
String msg1 = service.hello("Alice").invoke().toCompletableFuture().get(5, SECONDS);
assertEquals("Hello, Alice!", msg1); // default greeting
diff --git a/src/main/g8/$name__norm$-impl/src/test/resources/logback.xml b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/resources/logback.xml
similarity index 100%
rename from src/main/g8/$name__norm$-impl/src/test/resources/logback.xml
rename to src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-impl/src/test/resources/logback.xml
diff --git a/src/main/g8/$name__norm$-stream-api/src/main/java/$package$stream/api/$name__Camel$StreamService.java "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamService.java"
similarity index 80%
rename from src/main/g8/$name__norm$-stream-api/src/main/java/$package$stream/api/$name__Camel$StreamService.java
rename to "src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamService.java"
index 5e262d5..7d3ea9c 100644
--- a/src/main/g8/$name__norm$-stream-api/src/main/java/$package$stream/api/$name__Camel$StreamService.java
+++ "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-api/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/api/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamService.java"
@@ -1,4 +1,4 @@
-package $package$stream.api;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$stream.api;
import akka.NotUsed;
import akka.stream.javadsl.Source;
@@ -13,9 +13,9 @@
* The $name$ stream interface.
*
* This describes everything that Lagom needs to know about how to serve and
- * consume the $name;format="Camel"$StreamService service.
+ * consume the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService service.
*/
-public interface $name;format="Camel"$StreamService extends Service {
+public interface $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService extends Service {
/**
* This stream is implemented by asking the hello service directly to say
* hello to each passed in name. It requires the hello service to be up
diff --git "a/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamModule.java" "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamModule.java"
new file mode 100644
index 0000000..1cf891d
--- /dev/null
+++ "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamModule.java"
@@ -0,0 +1,22 @@
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$stream.impl;
+
+import com.google.inject.AbstractModule;
+import com.lightbend.lagom.javadsl.server.ServiceGuiceSupport;
+
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$stream.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService;
+
+/**
+ * The module that binds the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService so that it can be served.
+ */
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamModule extends AbstractModule implements ServiceGuiceSupport {
+ @Override
+ protected void configure() {
+ // Bind the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService service
+ bindService($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService.class, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamServiceImpl.class);
+ // Bind the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service client
+ bindClient($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service.class);
+ // Bind the subscriber eagerly to ensure it starts up
+ bind($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamSubscriber.class).asEagerSingleton();
+ }
+}
diff --git a/src/main/g8/$name__norm$-stream-impl/src/main/java/$package$stream/impl/$name__Camel$StreamRepository.java "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamRepository.java"
similarity index 83%
rename from src/main/g8/$name__norm$-stream-impl/src/main/java/$package$stream/impl/$name__Camel$StreamRepository.java
rename to "src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamRepository.java"
index 5d52b2f..14ce538 100644
--- a/src/main/g8/$name__norm$-stream-impl/src/main/java/$package$stream/impl/$name__Camel$StreamRepository.java
+++ "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamRepository.java"
@@ -1,4 +1,4 @@
-package $package$stream.impl;
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$stream.impl;
import akka.Done;
import com.lightbend.lagom.javadsl.persistence.cassandra.CassandraSession;
@@ -10,14 +10,14 @@
import java.util.concurrent.CompletionStage;
@Singleton
-public class $name;format="Camel"$StreamRepository {
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamRepository {
private final CassandraSession uninitializedSession;
// Will return the session when the Cassandra tables have been successfully created
private volatile CompletableFuture initializedSession;
@Inject
- public $name;format="Camel"$StreamRepository(CassandraSession uninitializedSession) {
+ public $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamRepository(CassandraSession uninitializedSession) {
this.uninitializedSession = uninitializedSession;
// Eagerly create the session
session();
diff --git "a/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamServiceImpl.java" "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamServiceImpl.java"
new file mode 100644
index 0000000..38d8235
--- /dev/null
+++ "b/src/main/g8/$if(mavenArchetype.truthy)$archetype-resources$endif$/$if(mavenArchetype.truthy)$__serviceName__$else$$name__norm$$endif$-stream-impl/src/main/java/$if(mavenArchetype.truthy)$__packageInPathFormat__$else$$package$stream$endif$/$if(mavenArchetype.truthy)$$\"__serviceName__stream\"$$endif$/impl/$if(mavenArchetype.truthy)$__serviceClassName__$else$$name__Camel$$endif$StreamServiceImpl.java"
@@ -0,0 +1,41 @@
+package $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$stream.impl;
+
+import akka.NotUsed;
+import akka.stream.javadsl.Source;
+import com.lightbend.lagom.javadsl.api.ServiceCall;
+
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
+import $if(mavenArchetype.truthy)$\${package}.\${serviceName}$else$$package$$endif$stream.api.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService;
+
+import javax.inject.Inject;
+
+import static java.util.concurrent.CompletableFuture.completedFuture;
+
+/**
+ * Implementation of the $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService.
+ */
+public class $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamServiceImpl implements $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamService {
+ private final $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
+ private final $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamRepository repository;
+
+ @Inject
+ public $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamServiceImpl($if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service, $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$StreamRepository repository) {
+ this.$if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service = $if(mavenArchetype.truthy)$\${serviceClassName}$else$$name;format="Camel"$$endif$Service;
+ this.repository = repository;
+ }
+
+ @Override
+ public ServiceCall