public void afterPropertiesSet() {
   if (this.loadTimeWeaver == null && InstrumentationLoadTimeWeaver.isInstrumentationAvailable()) {
     this.loadTimeWeaver =
         new InstrumentationLoadTimeWeaver(this.resourcePatternResolver.getClassLoader());
   }
   preparePersistenceUnitInfos();
 }
 public static void enableAspectJWeaving(LoadTimeWeaver weaverToUse, ClassLoader beanClassLoader) {
   if (weaverToUse == null) {
     if (InstrumentationLoadTimeWeaver.isInstrumentationAvailable()) {
       weaverToUse = new InstrumentationLoadTimeWeaver(beanClassLoader);
     } else {
       throw new IllegalStateException("No LoadTimeWeaver available");
     }
   }
   weaverToUse.addTransformer(
       new AspectJClassBypassingClassFileTransformer(new ClassPreProcessorAgentAdapter()));
 }