Skip to content

Commit 5de0abe

Browse files
committed
remove View.Engine.name fix #109
1 parent 49b524c commit 5de0abe

File tree

5 files changed

+21
-95
lines changed

5 files changed

+21
-95
lines changed

jooby-ftl/src/main/java/org/jooby/ftl/Ftl.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.jooby.Env;
2727
import org.jooby.Jooby;
2828
import org.jooby.Renderer;
29-
import org.jooby.View;
3029
import org.jooby.internal.ftl.Engine;
3130
import org.jooby.internal.ftl.GuavaCacheStorage;
3231
import org.slf4j.Logger;
@@ -35,9 +34,7 @@
3534
import com.google.common.cache.CacheBuilder;
3635
import com.google.common.cache.CacheBuilderSpec;
3736
import com.google.inject.Binder;
38-
import com.google.inject.Key;
3937
import com.google.inject.multibindings.Multibinder;
40-
import com.google.inject.name.Names;
4138
import com.typesafe.config.Config;
4239
import com.typesafe.config.ConfigFactory;
4340

@@ -197,13 +194,11 @@ public void configure(final Env env, final Config config, final Binder binder) {
197194

198195
binder.bind(Configuration.class).toInstance(freemarker);
199196

200-
Engine engine = new Engine(freemarker, prefix, suffix);
197+
Engine engine = new Engine(freemarker, suffix);
201198

202199
Multibinder.newSetBinder(binder, Renderer.class)
203200
.addBinding().toInstance(engine);
204201

205-
// direct access
206-
binder.bind(Key.get(View.Engine.class, Names.named(engine.name()))).toInstance(engine);
207202
} catch (TemplateException ex) {
208203
throw new IllegalStateException("Freemarker configuration results in error", ex);
209204
}

jooby-ftl/src/test/java/org/jooby/ftl/FtlTest.java

Lines changed: 10 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.jooby.Env;
1212
import org.jooby.MockUnit;
1313
import org.jooby.Renderer;
14-
import org.jooby.View;
1514
import org.jooby.internal.ftl.Engine;
1615
import org.jooby.internal.ftl.GuavaCacheStorage;
1716
import org.junit.Test;
@@ -20,11 +19,9 @@
2019
import org.powermock.modules.junit4.PowerMockRunner;
2120

2221
import com.google.inject.Binder;
23-
import com.google.inject.Key;
2422
import com.google.inject.binder.AnnotatedBindingBuilder;
2523
import com.google.inject.binder.LinkedBindingBuilder;
2624
import com.google.inject.multibindings.Multibinder;
27-
import com.google.inject.name.Names;
2825
import com.typesafe.config.Config;
2926
import com.typesafe.config.ConfigFactory;
3027
import com.typesafe.config.ConfigValueFactory;
@@ -75,9 +72,8 @@ public void defaults() throws Exception {
7572
expect(binder.bind(Configuration.class)).andReturn(configBB);
7673

7774
Engine engine = unit.mockConstructor(
78-
Engine.class, new Class[]{Configuration.class, String.class, String.class },
79-
config, prefix, suffix);
80-
expect(engine.name()).andReturn("ftl");
75+
Engine.class, new Class[]{Configuration.class, String.class },
76+
config, suffix);
8177

8278
LinkedBindingBuilder<Renderer> ffLBB = unit.mock(LinkedBindingBuilder.class);
8379
ffLBB.toInstance(engine);
@@ -88,11 +84,6 @@ public void defaults() throws Exception {
8884
unit.mockStatic(Multibinder.class);
8985
expect(Multibinder.newSetBinder(binder, Renderer.class)).andReturn(formatter);
9086

91-
LinkedBindingBuilder<View.Engine> eLBB = unit.mock(LinkedBindingBuilder.class);
92-
eLBB.toInstance(engine);
93-
94-
expect(binder.bind(Key.get(View.Engine.class, Names.named("ftl")))).andReturn(eLBB);
95-
9687
})
9788
.expect(unit -> {
9889
Env env = unit.get(Env.class);
@@ -142,9 +133,8 @@ public void defaultsNoDev() throws Exception {
142133
expect(binder.bind(Configuration.class)).andReturn(configBB);
143134

144135
Engine engine = unit.mockConstructor(
145-
Engine.class, new Class[]{Configuration.class, String.class, String.class },
146-
config, prefix, suffix);
147-
expect(engine.name()).andReturn("ftl");
136+
Engine.class, new Class[]{Configuration.class, String.class },
137+
config, suffix);
148138

149139
LinkedBindingBuilder<Renderer> ffLBB = unit.mock(LinkedBindingBuilder.class);
150140
ffLBB.toInstance(engine);
@@ -155,11 +145,6 @@ public void defaultsNoDev() throws Exception {
155145
unit.mockStatic(Multibinder.class);
156146
expect(Multibinder.newSetBinder(binder, Renderer.class)).andReturn(formatter);
157147

158-
LinkedBindingBuilder<View.Engine> eLBB = unit.mock(LinkedBindingBuilder.class);
159-
eLBB.toInstance(engine);
160-
161-
expect(binder.bind(Key.get(View.Engine.class, Names.named("ftl")))).andReturn(eLBB);
162-
163148
})
164149
.expect(unit -> {
165150
Env env = unit.get(Env.class);
@@ -239,9 +224,8 @@ public void withPrefix() throws Exception {
239224
expect(binder.bind(Configuration.class)).andReturn(configBB);
240225

241226
Engine engine = unit.mockConstructor(
242-
Engine.class, new Class[]{Configuration.class, String.class, String.class },
243-
config, prefix, suffix);
244-
expect(engine.name()).andReturn("ftl");
227+
Engine.class, new Class[]{Configuration.class, String.class },
228+
config, suffix);
245229

246230
LinkedBindingBuilder<Renderer> ffLBB = unit.mock(LinkedBindingBuilder.class);
247231
ffLBB.toInstance(engine);
@@ -252,11 +236,6 @@ public void withPrefix() throws Exception {
252236
unit.mockStatic(Multibinder.class);
253237
expect(Multibinder.newSetBinder(binder, Renderer.class)).andReturn(formatter);
254238

255-
LinkedBindingBuilder<View.Engine> eLBB = unit.mock(LinkedBindingBuilder.class);
256-
eLBB.toInstance(engine);
257-
258-
expect(binder.bind(Key.get(View.Engine.class, Names.named("ftl")))).andReturn(eLBB);
259-
260239
})
261240
.expect(unit -> {
262241
Env env = unit.get(Env.class);
@@ -304,9 +283,8 @@ public void withPrefixAndSuffix() throws Exception {
304283
expect(binder.bind(Configuration.class)).andReturn(configBB);
305284

306285
Engine engine = unit.mockConstructor(
307-
Engine.class, new Class[]{Configuration.class, String.class, String.class },
308-
config, prefix, suffix);
309-
expect(engine.name()).andReturn("ftl");
286+
Engine.class, new Class[]{Configuration.class, String.class },
287+
config, suffix);
310288

311289
LinkedBindingBuilder<Renderer> ffLBB = unit.mock(LinkedBindingBuilder.class);
312290
ffLBB.toInstance(engine);
@@ -317,11 +295,6 @@ public void withPrefixAndSuffix() throws Exception {
317295
unit.mockStatic(Multibinder.class);
318296
expect(Multibinder.newSetBinder(binder, Renderer.class)).andReturn(formatter);
319297

320-
LinkedBindingBuilder<View.Engine> eLBB = unit.mock(LinkedBindingBuilder.class);
321-
eLBB.toInstance(engine);
322-
323-
expect(binder.bind(Key.get(View.Engine.class, Names.named("ftl")))).andReturn(eLBB);
324-
325298
})
326299
.expect(unit -> {
327300
Env env = unit.get(Env.class);
@@ -371,9 +344,8 @@ public void withConfigurer() throws Exception {
371344
expect(binder.bind(Configuration.class)).andReturn(configBB);
372345

373346
Engine engine = unit.mockConstructor(
374-
Engine.class, new Class[]{Configuration.class, String.class, String.class },
375-
config, prefix, suffix);
376-
expect(engine.name()).andReturn("ftl");
347+
Engine.class, new Class[]{Configuration.class, String.class },
348+
config, suffix);
377349

378350
LinkedBindingBuilder<Renderer> ffLBB = unit.mock(LinkedBindingBuilder.class);
379351
ffLBB.toInstance(engine);
@@ -383,12 +355,6 @@ public void withConfigurer() throws Exception {
383355

384356
unit.mockStatic(Multibinder.class);
385357
expect(Multibinder.newSetBinder(binder, Renderer.class)).andReturn(formatter);
386-
387-
LinkedBindingBuilder<View.Engine> eLBB = unit.mock(LinkedBindingBuilder.class);
388-
eLBB.toInstance(engine);
389-
390-
expect(binder.bind(Key.get(View.Engine.class, Names.named("ftl")))).andReturn(eLBB);
391-
392358
})
393359
.expect(unit -> {
394360
Env env = unit.get(Env.class);

jooby-hbs/src/test/java/org/jooby/hbs/HbsTest.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import org.jooby.Env;
77
import org.jooby.MockUnit;
88
import org.jooby.Renderer;
9-
import org.jooby.View;
10-
import org.jooby.View.Engine;
119
import org.jooby.internal.hbs.HbsEngine;
1210
import org.jooby.internal.hbs.HbsHelpers;
1311
import org.junit.Test;
@@ -17,7 +15,6 @@
1715

1816
import com.github.jknack.handlebars.Handlebars;
1917
import com.google.inject.Binder;
20-
import com.google.inject.Key;
2118
import com.google.inject.binder.AnnotatedBindingBuilder;
2219
import com.google.inject.binder.LinkedBindingBuilder;
2320
import com.google.inject.multibindings.Multibinder;
@@ -60,11 +57,6 @@ public void configure() throws Exception {
6057
expect(Multibinder.newSetBinder(binder, Renderer.class))
6158
.andReturn(mfbinder);
6259

63-
LinkedBindingBuilder<Engine> neLBB = unit.mock(LinkedBindingBuilder.class);
64-
neLBB.toInstance(isA(HbsEngine.class));
65-
66-
expect(binder.bind(Key.get(View.Engine.class, Names.named("hbs")))).andReturn(neLBB);
67-
6860
AnnotatedBindingBuilder<HbsHelpers> hhABB = unit.mock(AnnotatedBindingBuilder.class);
6961
hhABB.asEagerSingleton();
7062

jooby/src/main/java/org/jooby/View.java

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020

2121
import static java.util.Objects.requireNonNull;
2222

23+
import java.io.FileNotFoundException;
2324
import java.util.HashMap;
2425
import java.util.List;
2526
import java.util.Map;
2627

28+
import org.slf4j.LoggerFactory;
29+
2730
import com.google.common.collect.ImmutableList;
2831

2932
/**
@@ -44,18 +47,15 @@ public interface Engine extends Renderer {
4447

4548
List<MediaType> HTML = ImmutableList.of(MediaType.html);
4649

47-
default String name() {
48-
String name = getClass().getName();
49-
return name.substring(Math.max(-1, name.lastIndexOf('.')) + 1).toLowerCase();
50-
}
51-
5250
@Override
53-
default void render(final Object object, final Renderer.Context ctx) throws Exception {
54-
if (object instanceof View) {
55-
View view = (View) object;
56-
if (view.engine.length() == 0 || view.engine.equals(name())) {
51+
default void render(final Object value, final Renderer.Context ctx) throws Exception {
52+
if (value instanceof View) {
53+
View view = (View) value;
54+
try {
5755
ctx.type(MediaType.html);
58-
render((View) object, ctx);
56+
render(view, ctx);
57+
} catch (FileNotFoundException ex) {
58+
LoggerFactory.getLogger(getClass()).debug("Template not found: " + view.name(), ex);
5959
}
6060
}
6161
}
@@ -74,9 +74,6 @@ default void render(final Object object, final Renderer.Context ctx) throws Exce
7474
/** View's name. */
7575
private final String name;
7676

77-
/** View's engine. */
78-
private String engine = "";
79-
8077
/** View's model. */
8178
private final Map<String, Object> model = new HashMap<>();
8279

@@ -129,29 +126,11 @@ public View put(final Map<String, ?> values) {
129126
return model;
130127
}
131128

132-
/**
133-
* @return The name of the view engine or empty string for default view engine.
134-
*/
135-
public String engine() {
136-
return engine;
137-
}
138-
139129
@Override
140130
public Result set(final Object content) {
141131
throw new UnsupportedOperationException("Not allowed in views, use one of the put methods.");
142132
}
143133

144-
/**
145-
* Set the view engine to use.
146-
*
147-
* @param engine Set the view engine to use.
148-
* @return This view.
149-
*/
150-
public View engine(final String engine) {
151-
this.engine = requireNonNull(engine, "A view engine is required.");
152-
return this;
153-
}
154-
155134
@Override
156135
public String toString() {
157136
return name + ": " + model;

jooby/src/test/java/org/jooby/ViewTest.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public void render(final View viewable, final Context ctx) throws Exception {
2222
public void viewOnly() {
2323
View view = Results.html("v");
2424
assertEquals("v", view.name());
25-
assertEquals("", view.engine());
2625
assertEquals(0, view.model().size());
2726
}
2827

@@ -65,9 +64,4 @@ public void viewPutMap() {
6564
}
6665

6766

68-
@Test
69-
public void defViewEngineName() {
70-
assertEquals("viewtest$viewtestengine", new ViewTestEngine().name());
71-
}
72-
7367
}

0 commit comments

Comments
 (0)