@@ -624,6 +624,22 @@ private Map<String, Class<?>> getExtensionClasses() {
624624
625625 // synchronized in getExtensionClasses
626626 private Map <String , Class <?>> loadExtensionClasses () {
627+ cacheDefaultExtensionName ();
628+
629+ Map <String , Class <?>> extensionClasses = new HashMap <>();
630+ loadDirectory (extensionClasses , DUBBO_INTERNAL_DIRECTORY , type .getName ());
631+ loadDirectory (extensionClasses , DUBBO_INTERNAL_DIRECTORY , type .getName ().replace ("org.apache" , "com.alibaba" ));
632+ loadDirectory (extensionClasses , DUBBO_DIRECTORY , type .getName ());
633+ loadDirectory (extensionClasses , DUBBO_DIRECTORY , type .getName ().replace ("org.apache" , "com.alibaba" ));
634+ loadDirectory (extensionClasses , SERVICES_DIRECTORY , type .getName ());
635+ loadDirectory (extensionClasses , SERVICES_DIRECTORY , type .getName ().replace ("org.apache" , "com.alibaba" ));
636+ return extensionClasses ;
637+ }
638+
639+ /**
640+ * extract and cache default extension name if exists
641+ */
642+ private void cacheDefaultExtensionName () {
627643 final SPI defaultAnnotation = type .getAnnotation (SPI .class );
628644 if (defaultAnnotation != null ) {
629645 String value = defaultAnnotation .value ();
@@ -638,15 +654,6 @@ private Map<String, Class<?>> loadExtensionClasses() {
638654 }
639655 }
640656 }
641-
642- Map <String , Class <?>> extensionClasses = new HashMap <String , Class <?>>();
643- loadDirectory (extensionClasses , DUBBO_INTERNAL_DIRECTORY , type .getName ());
644- loadDirectory (extensionClasses , DUBBO_INTERNAL_DIRECTORY , type .getName ().replace ("org.apache" , "com.alibaba" ));
645- loadDirectory (extensionClasses , DUBBO_DIRECTORY , type .getName ());
646- loadDirectory (extensionClasses , DUBBO_DIRECTORY , type .getName ().replace ("org.apache" , "com.alibaba" ));
647- loadDirectory (extensionClasses , SERVICES_DIRECTORY , type .getName ());
648- loadDirectory (extensionClasses , SERVICES_DIRECTORY , type .getName ().replace ("org.apache" , "com.alibaba" ));
649- return extensionClasses ;
650657 }
651658
652659 private void loadDirectory (Map <String , Class <?>> extensionClasses , String dir , String type ) {
0 commit comments