21
21
import java .util .Map ;
22
22
import org .apache .gravitino .MetadataObject ;
23
23
import org .apache .gravitino .exceptions .NoSuchTagException ;
24
+ import org .apache .gravitino .listener .api .event .AlterTagFailureEvent ;
25
+ import org .apache .gravitino .listener .api .event .AssociateTagsForMetadataObjectFailureEvent ;
26
+ import org .apache .gravitino .listener .api .event .CreateTagFailureEvent ;
27
+ import org .apache .gravitino .listener .api .event .DeleteTagFailureEvent ;
28
+ import org .apache .gravitino .listener .api .event .GetTagFailureEvent ;
29
+ import org .apache .gravitino .listener .api .event .GetTagForMetadataObjectFailureEvent ;
30
+ import org .apache .gravitino .listener .api .event .ListMetadataObjectsForTagFailureEvent ;
31
+ import org .apache .gravitino .listener .api .event .ListTagsFailureEvent ;
32
+ import org .apache .gravitino .listener .api .event .ListTagsForMetadataObjectFailureEvent ;
33
+ import org .apache .gravitino .listener .api .event .ListTagsInfoFailureEvent ;
34
+ import org .apache .gravitino .listener .api .event .ListTagsInfoForMetadataObjectFailureEvent ;
35
+ import org .apache .gravitino .listener .api .info .TagInfo ;
24
36
import org .apache .gravitino .tag .Tag ;
25
37
import org .apache .gravitino .tag .TagChange ;
26
38
import org .apache .gravitino .tag .TagDispatcher ;
39
+ import org .apache .gravitino .utils .PrincipalUtils ;
27
40
28
41
/**
29
42
* {@code TagEventDispatcher} is a decorator for {@link TagDispatcher} that not only delegates tag
32
45
* of tag operations.
33
46
*/
34
47
public class TagEventDispatcher implements TagDispatcher {
35
- @ SuppressWarnings ("unused" )
36
48
private final EventBus eventBus ;
37
-
38
- @ SuppressWarnings ("unused" )
39
49
private final TagDispatcher dispatcher ;
40
50
41
51
public TagEventDispatcher (EventBus eventBus , TagDispatcher dispatcher ) {
@@ -50,7 +60,8 @@ public String[] listTags(String metalake) {
50
60
// TODO: listTagsEvent
51
61
return dispatcher .listTags (metalake );
52
62
} catch (Exception e ) {
53
- // TODO: listTagFailureEvent
63
+ eventBus .dispatchEvent (
64
+ new ListTagsFailureEvent (PrincipalUtils .getCurrentUserName (), metalake , e ));
54
65
throw e ;
55
66
}
56
67
}
@@ -62,7 +73,8 @@ public Tag[] listTagsInfo(String metalake) {
62
73
// TODO: listTagsInfoEvent
63
74
return dispatcher .listTagsInfo (metalake );
64
75
} catch (Exception e ) {
65
- // TODO: listTagsInfoFailureEvent
76
+ eventBus .dispatchEvent (
77
+ new ListTagsInfoFailureEvent (PrincipalUtils .getCurrentUserName (), metalake , e ));
66
78
throw e ;
67
79
}
68
80
}
@@ -73,21 +85,24 @@ public Tag getTag(String metalake, String name) throws NoSuchTagException {
73
85
try {
74
86
// TODO: getTagEvent
75
87
return dispatcher .getTag (metalake , name );
76
- } catch (NoSuchTagException e ) {
77
- // TODO: getTagFailureEvent
88
+ } catch (Exception e ) {
89
+ eventBus .dispatchEvent (
90
+ new GetTagFailureEvent (PrincipalUtils .getCurrentUserName (), metalake , name , e ));
78
91
throw e ;
79
92
}
80
93
}
81
94
82
95
@ Override
83
96
public Tag createTag (
84
97
String metalake , String name , String comment , Map <String , String > properties ) {
98
+ TagInfo tagInfo = new TagInfo (name , comment , properties );
85
99
// TODO: createTagPreEvent
86
100
try {
87
101
// TODO: createTagEvent
88
102
return dispatcher .createTag (metalake , name , comment , properties );
89
103
} catch (Exception e ) {
90
- // TODO: createTagFailureEvent
104
+ eventBus .dispatchEvent (
105
+ new CreateTagFailureEvent (PrincipalUtils .getCurrentUserName (), metalake , tagInfo , e ));
91
106
throw e ;
92
107
}
93
108
}
@@ -99,7 +114,9 @@ public Tag alterTag(String metalake, String name, TagChange... changes) {
99
114
// TODO: alterTagEvent
100
115
return dispatcher .alterTag (metalake , name , changes );
101
116
} catch (Exception e ) {
102
- // TODO: alterTagFailureEvent
117
+ eventBus .dispatchEvent (
118
+ new AlterTagFailureEvent (
119
+ PrincipalUtils .getCurrentUserName (), metalake , name , changes , e ));
103
120
throw e ;
104
121
}
105
122
}
@@ -111,7 +128,8 @@ public boolean deleteTag(String metalake, String name) {
111
128
// TODO: deleteTagEvent
112
129
return dispatcher .deleteTag (metalake , name );
113
130
} catch (Exception e ) {
114
- // TODO: deleteTagFailureEvent
131
+ eventBus .dispatchEvent (
132
+ new DeleteTagFailureEvent (PrincipalUtils .getCurrentUserName (), metalake , name , e ));
115
133
throw e ;
116
134
}
117
135
}
@@ -123,7 +141,9 @@ public MetadataObject[] listMetadataObjectsForTag(String metalake, String name)
123
141
// TODO: listMetadataObjectsForTagEvent
124
142
return dispatcher .listMetadataObjectsForTag (metalake , name );
125
143
} catch (Exception e ) {
126
- // TODO: listMetadataObjectsForTagFailureEvent
144
+ eventBus .dispatchEvent (
145
+ new ListMetadataObjectsForTagFailureEvent (
146
+ PrincipalUtils .getCurrentUserName (), metalake , name , e ));
127
147
throw e ;
128
148
}
129
149
}
@@ -135,7 +155,9 @@ public String[] listTagsForMetadataObject(String metalake, MetadataObject metada
135
155
// TODO: listTagsForMetadataObjectEvent
136
156
return dispatcher .listTagsForMetadataObject (metalake , metadataObject );
137
157
} catch (Exception e ) {
138
- // TODO: listTagsForMetadataObjectFailureEvent
158
+ eventBus .dispatchEvent (
159
+ new ListTagsForMetadataObjectFailureEvent (
160
+ PrincipalUtils .getCurrentUserName (), metalake , metadataObject , e ));
139
161
throw e ;
140
162
}
141
163
}
@@ -147,7 +169,9 @@ public Tag[] listTagsInfoForMetadataObject(String metalake, MetadataObject metad
147
169
// TODO: listTagsInfoForMetadataObjectEvent
148
170
return dispatcher .listTagsInfoForMetadataObject (metalake , metadataObject );
149
171
} catch (Exception e ) {
150
- // TODO: listTagsInfoForMetadataObjectFailureEvent
172
+ eventBus .dispatchEvent (
173
+ new ListTagsInfoForMetadataObjectFailureEvent (
174
+ PrincipalUtils .getCurrentUserName (), metalake , metadataObject , e ));
151
175
throw e ;
152
176
}
153
177
}
@@ -161,7 +185,14 @@ public String[] associateTagsForMetadataObject(
161
185
return dispatcher .associateTagsForMetadataObject (
162
186
metalake , metadataObject , tagsToAdd , tagsToRemove );
163
187
} catch (Exception e ) {
164
- // TODO: associateTagsForMetadataObjectFailureEvent
188
+ eventBus .dispatchEvent (
189
+ new AssociateTagsForMetadataObjectFailureEvent (
190
+ PrincipalUtils .getCurrentUserName (),
191
+ metalake ,
192
+ metadataObject ,
193
+ tagsToAdd ,
194
+ tagsToRemove ,
195
+ e ));
165
196
throw e ;
166
197
}
167
198
}
@@ -173,7 +204,9 @@ public Tag getTagForMetadataObject(String metalake, MetadataObject metadataObjec
173
204
// TODO: getTagForMetadataObjectEvent
174
205
return dispatcher .getTagForMetadataObject (metalake , metadataObject , name );
175
206
} catch (Exception e ) {
176
- // TODO: getTagForMetadataObjectFailureEvent
207
+ eventBus .dispatchEvent (
208
+ new GetTagForMetadataObjectFailureEvent (
209
+ PrincipalUtils .getCurrentUserName (), metalake , metadataObject , name , e ));
177
210
throw e ;
178
211
}
179
212
}
0 commit comments