Skip to content

Commit 5cea06e

Browse files
committed
Minor formatting tweaks; update tests.
1 parent ef15b5b commit 5cea06e

File tree

9 files changed

+52
-136
lines changed

9 files changed

+52
-136
lines changed

build.gradle

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
subprojects {
1616
group = 'org.httprpc'
17-
version = '7.5'
17+
version = '7.5.1'
1818

1919
apply plugin: 'java-library'
2020
apply plugin: 'maven-publish'
@@ -25,9 +25,6 @@ subprojects {
2525
}
2626

2727
dependencies {
28-
implementation 'org.hibernate:hibernate-core:5.4.9.Final'
29-
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.0'
30-
3128
testImplementation('org.junit.jupiter:junit-jupiter-api:5.4.2')
3229
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.4.2')
3330
}

httprpc-client/src/main/java/org/httprpc/io/TemplateEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,7 @@ private void writeRoot(Object root, Writer writer, Locale locale, TimeZone timeZ
741741
if (value == null) {
742742
iterator = Collections.emptyIterator();
743743
} else if (value instanceof Iterable<?>) {
744-
iterator = ((Iterable<?>)value).iterator();
744+
iterator = ((Iterable<?>)value).iterator();
745745
} else if (value instanceof Map<?, ?>) {
746746
iterator = new MapIterator((Map<?, ?>)value);
747747
} else {

httprpc-client/src/main/java/org/httprpc/sql/Parameters.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,17 @@ public static Parameters parse(Reader sqlReader) throws IOException {
120120

121121
while (c != EOF) {
122122
if (c == '-') {
123-
sqlBuilder.append((char) c);
123+
sqlBuilder.append((char)c);
124124

125125
c = sqlReader.read();
126126

127127
singleLineComment = (c == '-') && !multiLineComment;
128128

129-
sqlBuilder.append((char) c);
129+
sqlBuilder.append((char)c);
130130

131131
c = sqlReader.read();
132132
} else if (c == '\r' || c == '\n') {
133-
sqlBuilder.append((char) c);
133+
sqlBuilder.append((char)c);
134134

135135
singleLineComment = false;
136136

@@ -146,13 +146,13 @@ public static Parameters parse(Reader sqlReader) throws IOException {
146146

147147
c = sqlReader.read();
148148
} else if (c == '*' && multiLineComment) {
149-
sqlBuilder.append((char) c);
149+
sqlBuilder.append((char)c);
150150

151151
c = sqlReader.read();
152152

153153
multiLineComment = (c != '/');
154154

155-
sqlBuilder.append((char) c);
155+
sqlBuilder.append((char)c);
156156

157157
c = sqlReader.read();
158158
} else if (singleLineComment || multiLineComment) {

httprpc-server/src/main/java/org/httprpc/WebService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ private static class Resource {
7070
int i1 = order.indexOf(verb1);
7171
int i2 = order.indexOf(verb2);
7272

73-
return Integer.compare((i1 == -1) ? order.size() : i1, (i2 == -1) ? order.size() : i2);
73+
return Integer.compare((i1 == -1) ? order.size() : i1, (i2 == -1) ? order.size() : i2);
7474
});
7575

7676
final TreeMap<String, Resource> resources = new TreeMap<>();
@@ -833,7 +833,7 @@ public Type getOwnerType() {
833833
} else {
834834
if (!structures.containsKey(type)) {
835835
structures.put(type, null);
836-
836+
837837
Map<String, Type> properties = BeanAdapter.getProperties(type);
838838

839839
StringBuilder structureBuilder = new StringBuilder();

httprpc-test/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ dependencies {
2626

2727
implementation project(':httprpc-server')
2828

29+
implementation 'org.hibernate:hibernate-core:5.4.9.Final'
30+
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.0'
31+
2932
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
3033
}
3134

httprpc-test/src/main/java/org/httprpc/test/EmployeeService.java

Lines changed: 37 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import org.httprpc.ResourcePath;
1212
import org.httprpc.WebService;
1313
import org.httprpc.beans.BeanAdapter;
14-
import org.httprpc.beans.Key;
1514
import org.httprpc.io.JSONEncoder;
1615
import org.httprpc.sql.QueryBuilder;
1716
import org.httprpc.sql.ResultSetAdapter;
@@ -26,8 +25,6 @@
2625
import javax.persistence.Table;
2726
import javax.servlet.ServletException;
2827
import javax.servlet.annotation.WebServlet;
29-
import javax.servlet.http.HttpServletRequest;
30-
import javax.servlet.http.HttpServletResponse;
3128
import javax.sql.DataSource;
3229
import java.io.IOException;
3330
import java.sql.Connection;
@@ -36,28 +33,16 @@
3633
import java.util.Date;
3734
import java.util.List;
3835
import java.util.Properties;
39-
import java.util.stream.Collectors;
4036
import java.util.stream.Stream;
4137

42-
@WebServlet(urlPatterns={"/employess/*"}, loadOnStartup=1)
38+
@WebServlet(urlPatterns={"/employees/*"}, loadOnStartup=1)
4339
public class EmployeeService extends WebService {
4440
public interface Employee {
45-
@Key("emp_no")
4641
int getEmployeeNumber();
47-
48-
@Key("first_name")
4942
String getFirstName();
50-
51-
@Key("last_name")
5243
String getLastName();
53-
54-
@Key("gender")
5544
String getGender();
56-
57-
@Key("birth_date")
5845
Date getBirthDate();
59-
60-
@Key("hire_date")
6146
Date getHireDate();
6247
}
6348

@@ -112,10 +97,16 @@ public Date getHireDate() {
11297

11398
private SessionFactory sessionFactory = null;
11499

115-
private static final String SQL_QUERY = QueryBuilder.select("*").from("employees").toString();
100+
private static final String SQL_QUERY = QueryBuilder.select("emp_no AS employeeNumber",
101+
"first_name AS firstName",
102+
"last_name AS lastName",
103+
"gender",
104+
"birth_date AS birthDate",
105+
"hire_date AS hireDate").from("employees").toString();
106+
116107
private static final String HQL_QUERY = QueryBuilder.select("e").from("EmployeeEntity e").toString();
117108

118-
private ThreadLocal<Boolean> useJackson = new ThreadLocal<>();
109+
private static final int FETCH_SIZE = 2048;
119110

120111
@Override
121112
public void init() throws ServletException {
@@ -140,154 +131,80 @@ public void init() throws ServletException {
140131
configuration.addAnnotatedClass(EmployeeEntity.class);
141132

142133
sessionFactory = configuration.buildSessionFactory();
143-
144-
useJackson.set(false);
145134
}
146135

147136
@RequestMethod("GET")
148-
public List<Employee> getEmployees() throws SQLException {
137+
@ResourcePath("sql")
138+
public Iterable<Employee> getEmployees() throws SQLException {
149139
try (Connection connection = dataSource.getConnection();
150140
Statement statement = connection.createStatement();
151141
ResultSetAdapter resultSetAdapter = new ResultSetAdapter(statement.executeQuery(SQL_QUERY))) {
152-
resultSetAdapter.setFetchSize(2048);
153-
154-
return resultSetAdapter.stream()
155-
.map(result -> (Employee)BeanAdapter.adapt(result, Employee.class))
156-
.collect(Collectors.toList());
157-
}
158-
}
159-
160-
@RequestMethod("GET")
161-
@ResourcePath("jackson")
162-
public List<Employee> getEmployeesJackson() throws SQLException {
163-
useJackson.set(true);
142+
resultSetAdapter.setFetchSize(FETCH_SIZE);
164143

165-
try {
166-
return getEmployees();
167-
} finally {
168-
useJackson.set(false);
144+
return new StreamAdapter<>(resultSetAdapter.stream().map(result -> BeanAdapter.adapt(result, Employee.class)));
169145
}
170146
}
171147

172148
@RequestMethod("GET")
173-
@ResourcePath("hibernate")
149+
@ResourcePath("hql")
174150
public List<EmployeeEntity> getEmployeesHibernate() {
175151
try (Session session = sessionFactory.openSession()) {
176152
return session.createQuery(HQL_QUERY, EmployeeEntity.class).list();
177153
}
178154
}
179155

180156
@RequestMethod("GET")
181-
@ResourcePath("hibernate-jackson")
182-
public List<EmployeeEntity> getEmployeesHibernateJackson() {
183-
useJackson.set(true);
184-
185-
try {
186-
return getEmployeesHibernate();
187-
} finally {
188-
useJackson.set(false);
189-
}
190-
}
191-
192-
@Override
193-
protected void encodeResult(HttpServletRequest request, HttpServletResponse response, Object result) throws IOException {
194-
if (useJackson.get()) {
195-
ObjectMapper objectMapper = new ObjectMapper();
196-
197-
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
198-
199-
objectMapper.writeValue(getResponse().getOutputStream(), result);
200-
} else {
201-
super.encodeResult(request, response, result);
202-
}
203-
}
204-
205-
@RequestMethod("GET")
206-
@ResourcePath("stream")
157+
@ResourcePath("sql-stream")
207158
public void streamEmployees() throws SQLException, IOException {
208159
getResponse().setContentType("application/json");
209160

210-
try (Connection connection = dataSource.getConnection();
211-
Statement statement = connection.createStatement();
212-
ResultSetAdapter resultSetAdapter = new ResultSetAdapter(statement.executeQuery(SQL_QUERY))) {
213-
resultSetAdapter.setFetchSize(2048);
214-
215-
JSONEncoder jsonEncoder = new JSONEncoder();
216-
217-
jsonEncoder.write(resultSetAdapter, getResponse().getOutputStream());
218-
}
219-
}
220-
221-
@RequestMethod("GET")
222-
@ResourcePath("stream-jackson")
223-
public void streamEmployeesJackson() throws SQLException, IOException {
224-
getResponse().setContentType("application/json");
161+
JSONEncoder jsonEncoder = new JSONEncoder();
225162

226163
try (Connection connection = dataSource.getConnection();
227164
Statement statement = connection.createStatement();
228165
ResultSetAdapter resultSetAdapter = new ResultSetAdapter(statement.executeQuery(SQL_QUERY))) {
229-
resultSetAdapter.setFetchSize(2048);
166+
resultSetAdapter.setFetchSize(FETCH_SIZE);
230167

231-
ObjectMapper objectMapper = new ObjectMapper();
232-
233-
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
234-
235-
ObjectWriter objectWriter = objectMapper.writer();
236-
237-
try (SequenceWriter sequenceWriter = objectWriter.writeValues(getResponse().getOutputStream())) {
238-
sequenceWriter.init(true);
239-
240-
resultSetAdapter.stream()
241-
.map(result -> (Employee)BeanAdapter.adapt(result, Employee.class))
242-
.forEach(employee -> {
243-
try {
244-
sequenceWriter.write(employee);
245-
} catch (IOException exception) {
246-
throw new RuntimeException(exception);
247-
}
248-
});
249-
}
168+
jsonEncoder.write(resultSetAdapter, getResponse().getOutputStream());
250169
}
251170
}
252171

253172
@RequestMethod("GET")
254-
@ResourcePath("stream-hibernate")
173+
@ResourcePath("hql-stream")
255174
public void streamEmployeesHibernate() throws IOException {
256175
getResponse().setContentType("application/json");
257176

177+
JSONEncoder jsonEncoder = new JSONEncoder();
178+
258179
try (Session session = sessionFactory.openSession();
259180
StreamAdapter<EmployeeEntity> streamAdapter = new StreamAdapter<>(session.createQuery(HQL_QUERY, EmployeeEntity.class).stream())) {
260-
JSONEncoder jsonEncoder = new JSONEncoder();
261-
262181
jsonEncoder.write(streamAdapter, getResponse().getOutputStream());
263182
}
264183
}
265184

266185
@RequestMethod("GET")
267-
@ResourcePath("stream-hibernate-jackson")
186+
@ResourcePath("hql-stream-jackson")
268187
public void streamEmployeesHibernateJackson() throws IOException {
269188
getResponse().setContentType("application/json");
270189

271-
try (Session session = sessionFactory.openSession();
272-
Stream<EmployeeEntity> stream = session.createQuery(HQL_QUERY, EmployeeEntity.class).stream()) {
273-
ObjectMapper objectMapper = new ObjectMapper();
274-
275-
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
190+
ObjectMapper objectMapper = new ObjectMapper();
276191

277-
ObjectWriter objectWriter = objectMapper.writer();
192+
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
278193

279-
try (SequenceWriter sequenceWriter = objectWriter.writeValues(getResponse().getOutputStream())) {
280-
sequenceWriter.init(true);
194+
ObjectWriter objectWriter = objectMapper.writer();
281195

282-
stream.forEach(employee -> {
283-
try {
284-
sequenceWriter.write(employee);
285-
} catch (IOException exception) {
286-
throw new RuntimeException(exception);
287-
}
288-
});
289-
}
196+
try (Session session = sessionFactory.openSession();
197+
Stream<EmployeeEntity> stream = session.createQuery(HQL_QUERY, EmployeeEntity.class).stream();
198+
SequenceWriter sequenceWriter = objectWriter.writeValues(getResponse().getOutputStream())) {
199+
sequenceWriter.init(true);
200+
201+
stream.forEach(employeeEntity -> {
202+
try {
203+
sequenceWriter.write(employeeEntity);
204+
} catch (IOException exception) {
205+
throw new RuntimeException(exception);
206+
}
207+
});
290208
}
291209
}
292-
293210
}

httprpc-test/src/main/java/org/httprpc/test/PetService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import java.sql.Statement;
4040
import java.util.Date;
4141
import java.util.ResourceBundle;
42-
import java.util.stream.Stream;
4342

4443
import static org.httprpc.util.Collections.entry;
4544
import static org.httprpc.util.Collections.listOf;

httprpc-test/src/main/java/org/httprpc/test/TestService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public void testPost(String name) throws IOException {
170170
public void testPut(int id) throws IOException {
171171
echo();
172172
}
173-
173+
174174
private void echo() throws IOException {
175175
InputStream inputStream = getRequest().getInputStream();
176176
OutputStream outputStream = getResponse().getOutputStream();

httprpc-test/src/test/java/org/httprpc/WebServiceProxyTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void testGetKeys() throws IOException {
152152
testService.put("c", 456);
153153
testService.put("d", "göodbye");
154154

155-
Map<String, ?> result = testService.testGetKeys();
155+
Map<String, ?> result = testService.testGetKeys();
156156

157157
assertEquals(mapOf(
158158
entry("list", listOf("123", "héllo", "456", "göodbye")),
@@ -169,7 +169,7 @@ public void testGetKeys() throws IOException {
169169
public void testGetFibonacci() throws IOException {
170170
TestService testService = WebServiceProxy.adapt(new URL(serverURL, "test/"), TestService.class);
171171

172-
List<Integer> result = testService.testGetFibonacci(8);
172+
List<Integer> result = testService.testGetFibonacci(8);
173173

174174
assertEquals(listOf(0, 1, 1, 2, 3, 5, 8, 13), result);
175175
}

0 commit comments

Comments
 (0)