Skip to content

Commit ba722e0

Browse files
committed
Remove raw types for AngularObject
1 parent 1641ce1 commit ba722e0

File tree

26 files changed

+200
-239
lines changed

26 files changed

+200
-239
lines changed

shell/src/test/java/org/apache/zeppelin/shell/BaseInterpreterTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,19 @@ protected InterpreterContext getIntpContext() {
4949

5050
@Override
5151
public void onAddAngularObject(String interpreterGroupId,
52-
AngularObject angularObject) {
52+
AngularObject<Object> angularObject) {
5353
onAdd.incrementAndGet();
5454
}
5555

5656
@Override
5757
public void onUpdateAngularObject(String interpreterGroupId,
58-
AngularObject angularObject) {
58+
AngularObject<Object> angularObject) {
5959
onUpdate.incrementAndGet();
6060
}
6161

6262
@Override
6363
public void onRemoveAngularObject(String interpreterGroupId,
64-
AngularObject angularObject) {
64+
AngularObject<Object> angularObject) {
6565
onRemove.incrementAndGet();
6666
}
6767
});

zeppelin-interpreter-integration/src/test/java/org/apache/zeppelin/integration/ZeppelinSparkClusterTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ public void testAngularObjects() throws IOException, InterpreterNotFoundExceptio
799799
note.run(p1.getId(), true);
800800
assertEquals(Status.FINISHED, p1.getStatus());
801801
// angular object is saved to InterpreterGroup's AngularObjectRegistry
802-
List<AngularObject> angularObjects;
802+
List<AngularObject<Object>> angularObjects;
803803
try {
804804
angularObjects = p1.getBindedInterpreter().getInterpreterGroup()
805805
.getAngularObjectRegistry().getAll(note.getId(), null);
@@ -848,7 +848,7 @@ public void testAngularObjects() throws IOException, InterpreterNotFoundExceptio
848848
p3.setText("%spark z.angularBindGlobal(\"name2\", \"world2\")");
849849
note.run(p3.getId(), true);
850850
assertEquals(Status.FINISHED, p3.getStatus());
851-
List<AngularObject> globalAngularObjects;
851+
List<AngularObject<Object>> globalAngularObjects;
852852
try {
853853
globalAngularObjects = p3.getBindedInterpreter().getInterpreterGroup()
854854
.getAngularObjectRegistry().getAll(null, null);

zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObject.java

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class AngularObject<T> implements JsonSerializable {
4242
private String name;
4343
private T object;
4444

45-
private transient AngularObjectListener listener;
45+
private transient AngularObjectListener<T> listener;
4646
private transient List<AngularObjectWatcher> watchers = new LinkedList<>();
4747

4848
private String noteId; // noteId belonging to. null for global scope
@@ -67,7 +67,7 @@ public AngularObject() {
6767
* @param listener event listener
6868
*/
6969
public AngularObject(String name, T o, String noteId, String paragraphId,
70-
AngularObjectListener listener) {
70+
AngularObjectListener<T> listener) {
7171
this.name = name;
7272
this.noteId = noteId;
7373
this.paragraphId = paragraphId;
@@ -178,40 +178,37 @@ public void set(T o, boolean emit) {
178178
emit();
179179
}
180180
LOGGER.debug("Update angular object: {} with value: {}", name, o);
181-
final Logger LOGGER = LoggerFactory.getLogger(AngularObject.class);
182181
List<AngularObjectWatcher> ws = new LinkedList<>();
183182
synchronized (watchers) {
184183
ws.addAll(watchers);
185184
}
186185

187186
ExecutorService executor = ExecutorFactory.singleton().createOrGet("angularObjectWatcher", 50);
188187
for (final AngularObjectWatcher w : ws) {
189-
executor.submit(new Runnable() {
190-
@Override
191-
public void run() {
192-
try {
193-
w.watch(before, after);
194-
} catch (Exception e) {
195-
LOGGER.error("Exception on watch", e);
196-
}
188+
Runnable task = () -> {
189+
try {
190+
w.watch(before, after);
191+
} catch (Exception e) {
192+
LOGGER.error("Exception on watch", e);
197193
}
198-
});
194+
};
195+
executor.submit(task);
199196
}
200197
}
201198

202199
/**
203200
* Set event listener for this object
204201
* @param listener
205202
*/
206-
public void setListener(AngularObjectListener listener) {
203+
public void setListener(AngularObjectListener<T> listener) {
207204
this.listener = listener;
208205
}
209206

210207
/**
211208
* Get event listener of this object
212209
* @return event listener
213210
*/
214-
public AngularObjectListener getListener() {
211+
public AngularObjectListener<T> getListener() {
215212
return listener;
216213
}
217214

@@ -262,7 +259,8 @@ public String toJson() {
262259
return GSON.toJson(this);
263260
}
264261

265-
public static AngularObject<?> fromJson(String json) {
262+
@SuppressWarnings("unchecked")
263+
public static AngularObject<Object> fromJson(String json) {
266264
return GSON.fromJson(json, AngularObject.class);
267265
}
268266
}

zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectListener.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
/**
2121
*
2222
*/
23-
public interface AngularObjectListener {
24-
void updated(AngularObject updatedObject);
23+
public interface AngularObjectListener<T> {
24+
void updated(AngularObject<T> updatedObject);
2525
}

zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectRegistry.java

Lines changed: 40 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.LinkedList;
2222
import java.util.List;
2323
import java.util.Map;
24+
import java.util.Map.Entry;
2425

2526
/**
2627
* AngularObjectRegistry keeps all the object that binded to Angular Display System.
@@ -31,24 +32,22 @@
3132
* - Global scope : Shared to all notebook that uses the same interpreter group
3233
*/
3334
public class AngularObjectRegistry {
34-
Map<String, Map<String, AngularObject>> registry = new HashMap<>();
35-
private final String GLOBAL_KEY = "_GLOBAL_";
35+
Map<String, Map<String, AngularObject<Object>>> registry = new HashMap<>();
36+
private static final String GLOBAL_KEY = "_GLOBAL_";
3637
private AngularObjectRegistryListener listener;
3738
private String interpreterGroupId;
38-
private AngularObjectListener angularObjectListener;
39+
private AngularObjectListener<Object> angularObjectListener;
3940

4041
public AngularObjectRegistry(final String interpreterGroupId,
4142
final AngularObjectRegistryListener listener) {
4243
this.interpreterGroupId = interpreterGroupId;
4344
this.listener = listener;
44-
angularObjectListener = new AngularObjectListener() {
45-
@Override
46-
public void updated(AngularObject updatedObject) {
47-
if (listener != null) {
48-
listener.onUpdateAngularObject(interpreterGroupId, updatedObject);
49-
}
45+
angularObjectListener = (AngularObject<Object> updatedObject) -> {
46+
if (listener != null) {
47+
listener.onUpdateAngularObject(interpreterGroupId, updatedObject);
5048
}
5149
};
50+
5251
}
5352

5453
public AngularObjectRegistryListener getListener() {
@@ -68,7 +67,7 @@ public AngularObjectRegistryListener getListener() {
6867
* @param paragraphId paragraphId belongs to. null for notebook scope
6968
* @return AngularObject that added
7069
*/
71-
public AngularObject add(String name, Object o, String noteId, String paragraphId) {
70+
public AngularObject<Object> add(String name, Object o, String noteId, String paragraphId) {
7271
return add(name, o, noteId, paragraphId, true);
7372
}
7473

@@ -83,15 +82,11 @@ private String getRegistryKey(String noteId, String paragraphId) {
8382
}
8483
}
8584
}
86-
87-
private Map<String, AngularObject> getRegistryForKey(String noteId, String paragraphId) {
85+
86+
private Map<String, AngularObject<Object>> getRegistryForKey(String noteId, String paragraphId) {
8887
synchronized (registry) {
8988
String key = getRegistryKey(noteId, paragraphId);
90-
if (!registry.containsKey(key)) {
91-
registry.put(key, new HashMap<String, AngularObject>());
92-
}
93-
94-
return registry.get(key);
89+
return registry.computeIfAbsent(key, k -> new HashMap<>());
9590
}
9691
}
9792

@@ -109,12 +104,12 @@ private Map<String, AngularObject> getRegistryForKey(String noteId, String parag
109104
* @param emit skip firing onAdd event on false
110105
* @return AngularObject that added
111106
*/
112-
public AngularObject add(String name, Object o, String noteId, String paragraphId,
107+
public AngularObject<Object> add(String name, Object o, String noteId, String paragraphId,
113108
boolean emit) {
114-
AngularObject ao = createNewAngularObject(name, o, noteId, paragraphId);
109+
AngularObject<Object> ao = createNewAngularObject(name, o, noteId, paragraphId);
115110

116111
synchronized (registry) {
117-
Map<String, AngularObject> noteLocalRegistry = getRegistryForKey(noteId, paragraphId);
112+
Map<String, AngularObject<Object>> noteLocalRegistry = getRegistryForKey(noteId, paragraphId);
118113
noteLocalRegistry.put(name, ao);
119114
if (listener != null && emit) {
120115
listener.onAddAngularObject(interpreterGroupId, ao);
@@ -124,12 +119,12 @@ public AngularObject add(String name, Object o, String noteId, String paragraphI
124119
return ao;
125120
}
126121

127-
protected AngularObject createNewAngularObject(String name, Object o, String noteId,
122+
protected AngularObject<Object> createNewAngularObject(String name, Object o, String noteId,
128123
String paragraphId) {
129-
return new AngularObject(name, o, noteId, paragraphId, angularObjectListener);
124+
return new AngularObject<>(name, o, noteId, paragraphId, angularObjectListener);
130125
}
131126

132-
protected AngularObjectListener getAngularObjectListener() {
127+
protected AngularObjectListener<Object> getAngularObjectListener() {
133128
return angularObjectListener;
134129
}
135130

@@ -141,7 +136,7 @@ protected AngularObjectListener getAngularObjectListener() {
141136
* @param paragraphId paragraphId belongs to. null for notebook scope
142137
* @return removed object. null if object is not found in registry
143138
*/
144-
public AngularObject remove(String name, String noteId, String paragraphId) {
139+
public AngularObject<Object> remove(String name, String noteId, String paragraphId) {
145140
return remove(name, noteId, paragraphId, true);
146141
}
147142

@@ -154,10 +149,10 @@ public AngularObject remove(String name, String noteId, String paragraphId) {
154149
* @param emit skip fireing onRemove event on false
155150
* @return removed object. null if object is not found in registry
156151
*/
157-
public AngularObject remove(String name, String noteId, String paragraphId, boolean emit) {
152+
public AngularObject<Object> remove(String name, String noteId, String paragraphId, boolean emit) {
158153
synchronized (registry) {
159-
Map<String, AngularObject> r = getRegistryForKey(noteId, paragraphId);
160-
AngularObject o = r.remove(name);
154+
Map<String, AngularObject<Object>> r = getRegistryForKey(noteId, paragraphId);
155+
AngularObject<Object> o = r.remove(name);
161156
if (listener != null && emit) {
162157
listener.onRemoveAngularObject(interpreterGroupId, o);
163158
}
@@ -177,8 +172,8 @@ public AngularObject remove(String name, String noteId, String paragraphId, bool
177172
*/
178173
public void removeAll(String noteId, String paragraphId) {
179174
synchronized (registry) {
180-
List<AngularObject> all = getAll(noteId, paragraphId);
181-
for (AngularObject ao : all) {
175+
List<AngularObject<Object>> all = getAll(noteId, paragraphId);
176+
for (AngularObject<Object> ao : all) {
182177
remove(ao.getName(), noteId, paragraphId);
183178
}
184179
}
@@ -191,9 +186,9 @@ public void removeAll(String noteId, String paragraphId) {
191186
* @param paragraphId paragraphId that belongs to
192187
* @return angularobject. null when not found
193188
*/
194-
public AngularObject get(String name, String noteId, String paragraphId) {
189+
public AngularObject<Object> get(String name, String noteId, String paragraphId) {
195190
synchronized (registry) {
196-
Map<String, AngularObject> r = getRegistryForKey(noteId, paragraphId);
191+
Map<String, AngularObject<Object>> r = getRegistryForKey(noteId, paragraphId);
197192
return r.get(name);
198193
}
199194
}
@@ -204,17 +199,17 @@ public AngularObject get(String name, String noteId, String paragraphId) {
204199
* @param paragraphId paragraphId that belongs to
205200
* @return all angularobject in the scope
206201
*/
207-
public List<AngularObject> getAll(String noteId, String paragraphId) {
208-
List<AngularObject> all = new LinkedList<>();
202+
public List<AngularObject<Object>> getAll(String noteId, String paragraphId) {
203+
List<AngularObject<Object>> all = new LinkedList<>();
209204
synchronized (registry) {
210-
Map<String, AngularObject> r = getRegistryForKey(noteId, paragraphId);
205+
Map<String, AngularObject<Object>> r = getRegistryForKey(noteId, paragraphId);
211206
if (r != null) {
212207
all.addAll(r.values());
213208
}
214209
}
215210
return all;
216211
}
217-
212+
218213
/**
219214
* Get all angular object related to specific note.
220215
* That includes all global scope objects, notebook scope objects and paragraph scope objects
@@ -223,16 +218,16 @@ public List<AngularObject> getAll(String noteId, String paragraphId) {
223218
* @param noteId
224219
* @return
225220
*/
226-
public List<AngularObject> getAllWithGlobal(String noteId) {
227-
List<AngularObject> all = new LinkedList<>();
221+
public List<AngularObject<Object>> getAllWithGlobal(String noteId) {
222+
List<AngularObject<Object>> all = new LinkedList<>();
228223
synchronized (registry) {
229-
Map<String, AngularObject> global = getRegistryForKey(null, null);
224+
Map<String, AngularObject<Object>> global = getRegistryForKey(null, null);
230225
if (global != null) {
231226
all.addAll(global.values());
232227
}
233-
for (String key : registry.keySet()) {
234-
if (key.startsWith(noteId)) {
235-
all.addAll(registry.get(key).values());
228+
for (Entry<String, Map<String, AngularObject<Object>>> registryEntry : registry.entrySet()) {
229+
if (registryEntry.getKey().startsWith(noteId)) {
230+
all.addAll(registryEntry.getValue().values());
236231
}
237232
}
238233
}
@@ -243,14 +238,14 @@ public String getInterpreterGroupId() {
243238
return interpreterGroupId;
244239
}
245240

246-
public Map<String, Map<String, AngularObject>> getRegistry() {
241+
public Map<String, Map<String, AngularObject<Object>>> getRegistry() {
247242
return registry;
248243
}
249244

250-
public void setRegistry(Map<String, Map<String, AngularObject>> registry) {
245+
public void setRegistry(Map<String, Map<String, AngularObject<Object>>> registry) {
251246
this.registry = registry;
252-
for (Map<String, AngularObject> map : registry.values()) {
253-
for (AngularObject ao : map.values()) {
247+
for (Map<String, AngularObject<Object>> map : registry.values()) {
248+
for (AngularObject<Object> ao : map.values()) {
254249
ao.setListener(angularObjectListener);
255250
}
256251
}

zeppelin-interpreter/src/main/java/org/apache/zeppelin/display/AngularObjectRegistryListener.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
* Listener class for angular object operations, such as add, update, remove.
2323
*/
2424
public interface AngularObjectRegistryListener {
25-
void onAddAngularObject(String interpreterGroupId, AngularObject angularObject);
26-
void onUpdateAngularObject(String interpreterGroupId, AngularObject angularObject);
27-
void onRemoveAngularObject(String interpreterGroupId, AngularObject angularObject);
25+
void onAddAngularObject(String interpreterGroupId, AngularObject<Object> angularObject);
26+
27+
void onUpdateAngularObject(String interpreterGroupId, AngularObject<Object> angularObject);
28+
29+
void onRemoveAngularObject(String interpreterGroupId, AngularObject<Object> angularObject);
2830
}

zeppelin-interpreter/src/main/java/org/apache/zeppelin/helium/ApplicationLoader.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
import org.apache.zeppelin.resource.Resource;
2222
import org.apache.zeppelin.resource.ResourcePool;
2323
import org.apache.zeppelin.resource.ResourceSet;
24-
import org.slf4j.Logger;
25-
import org.slf4j.LoggerFactory;
2624

2725
import java.io.File;
2826
import java.lang.reflect.Constructor;
@@ -38,7 +36,6 @@
3836
* Load application
3937
*/
4038
public class ApplicationLoader {
41-
private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationLoader.class);
4239

4340
private final DependencyResolver depResolver;
4441
private final ResourcePool resourcePool;
@@ -129,8 +126,7 @@ public Application load(HeliumPackage packageInfo, ApplicationContext context)
129126
try {
130127
Constructor<Application> constructor = appClass.getConstructor(ApplicationContext.class);
131128

132-
Application app = new ClassLoaderApplication(constructor.newInstance(context), cl);
133-
return app;
129+
return new ClassLoaderApplication(constructor.newInstance(context), cl);
134130
} catch (Exception e) {
135131
throw new ApplicationException(e);
136132
} finally {

0 commit comments

Comments
 (0)