@@ -77,6 +77,38 @@ public void testWithRecordFilter() throws LoaderException {
7777 recordFilter .includeRecord ("topic" , 1 , 1L , "Key" , "Value" );
7878 }
7979
80+ /**
81+ * Test checking a RecordFilter.
82+ */
83+ @ Test
84+ public void testCheckPlugin_WithRecordFilter () throws LoaderException {
85+ final String jarFilename = "testPlugins.jar" ;
86+ final String classPath = "examples.filter.LowOffsetFilter" ;
87+
88+ // Find jar on filesystem.
89+ final URL jar = getClass ().getClassLoader ().getResource ("testDeserializer/" + jarFilename );
90+ final String jarPath = new File (jar .getFile ()).getParent ();
91+
92+ // Create factory
93+ final PluginFactory <RecordFilter > factory = new PluginFactory <>(jarPath , RecordFilter .class );
94+ final Path pathForJar = factory .getPathForJar (jarFilename );
95+
96+ // Validate path is correct
97+ assertEquals ("Has expected Path" , jar .getPath (), pathForJar .toString ());
98+
99+ // Get class instance
100+ final Class <? extends RecordFilter > pluginFilterClass = factory .getPluginClass (jarFilename , classPath );
101+
102+ // Validate
103+ assertNotNull (pluginFilterClass );
104+ assertEquals ("Has expected name" , classPath , pluginFilterClass .getName ());
105+ assertTrue ("Validate came from correct class loader" , pluginFilterClass .getClassLoader () instanceof PluginClassLoader );
106+
107+ // Check filter instance
108+ final boolean result = factory .checkPlugin (jarFilename , classPath );
109+ assertTrue (result );
110+ }
111+
80112 /**
81113 * Test creating a Deserializer.
82114 */
@@ -104,7 +136,7 @@ public void testWithDeserializer() throws LoaderException {
104136 assertEquals ("Has expected name" , classPath , pluginFilterClass .getName ());
105137 assertTrue ("Validate came from correct class loader" , pluginFilterClass .getClassLoader () instanceof PluginClassLoader );
106138
107- // Crete filter instance
139+ // Crete Deserializer instance
108140 final Deserializer deserializer = factory .getPlugin (jarFilename , classPath );
109141 assertNotNull (deserializer );
110142 assertEquals ("Has correct name" , classPath , deserializer .getClass ().getName ());
@@ -114,6 +146,38 @@ public void testWithDeserializer() throws LoaderException {
114146 final String result = (String ) deserializer .deserialize ("MyTopic" , value .getBytes (StandardCharsets .UTF_8 ));
115147 }
116148
149+ /**
150+ * Test checking a Deserializer.
151+ */
152+ @ Test
153+ public void testCheckPlugin_WithDeserializer () throws LoaderException {
154+ final String jarFilename = "testPlugins.jar" ;
155+ final String classPath = "examples.deserializer.ExampleDeserializer" ;
156+
157+ // Find jar on filesystem.
158+ final URL jar = getClass ().getClassLoader ().getResource ("testDeserializer/" + jarFilename );
159+ final String jarPath = new File (jar .getFile ()).getParent ();
160+
161+ // Create factory
162+ final PluginFactory <Deserializer > factory = new PluginFactory <>(jarPath , Deserializer .class );
163+ final Path pathForJar = factory .getPathForJar (jarFilename );
164+
165+ // Validate path is correct
166+ assertEquals ("Has expected Path" , jar .getPath (), pathForJar .toString ());
167+
168+ // Get class instance
169+ final Class <? extends Deserializer > pluginFilterClass = factory .getPluginClass (jarFilename , classPath );
170+
171+ // Validate
172+ assertNotNull (pluginFilterClass );
173+ assertEquals ("Has expected name" , classPath , pluginFilterClass .getName ());
174+ assertTrue ("Validate came from correct class loader" , pluginFilterClass .getClassLoader () instanceof PluginClassLoader );
175+
176+ // Check Deserializer instance
177+ final boolean result = factory .checkPlugin (jarFilename , classPath );
178+ assertTrue (result );
179+ }
180+
117181 /**
118182 * Tests loading a deserializer not from an external jar.
119183 */
0 commit comments