2011-08-18 12 views
12

Grałem z Weld-SE (Java SE) i zauważyłem, że jeśli w ścieżce klas znajduje się dużo JARów, czas uruchamiania JVM wynosi kilka sekund.Czy można kontrolować skanowanie w klasie Ścieżka?

Nie ma sposobu na określenie/ograniczenie ścieżki skanowania jako wzorca paczki lub wzoru ścieżki, jak w Antach Apache lub AspectJ?

PS: Rejestracja na forum Weld prostu nie działa - to powtarza „hasło jest trywialny”

Odpowiedz

4

Dobre pytania, ale nie sądzę, że jest to możliwe. Każde archiwum jest skanowane pod kątem beans.xml według specyfikacji.

+0

zgaduję, że nadszedł czas, aby usunąć tę odpowiedź, @Bozho: poprzednia jest całkowicie ważna. – Riduidel

+4

@Riduidel dzięki. Myślałem o usunięciu, ale jak na specyfikację CDI, nie ma mowy. Weld to tylko jedno wdrożenie. Przegłosowałem drugą odpowiedź, ponieważ jest to praktycznie najbardziej stosowna. – Bozho

+1

Rzeczywiście, zapomniałem o niestandardowym aspekcie, dziękuję za wyjaśnienia. – Riduidel

13

Począwszy spoiny 1.1.0 możliwe jest według Weld reference documentation:

<beans xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:weld="http://jboss.org/schema/weld/beans" 
     xsi:schemaLocation=" 
      http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd 
      http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd"> 
    <weld:scan> 
     <weld:exclude name="mypackage.MyClass"/> 
    </weld:scan> 
</beans> 
6

Można z CDI 1.1. Pierwsza odpowiedź działa dobrze, ale ten fragment działa na każdym dostawcy:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" 
    version="1.1" bean-discovery-mode="all"> 

    <scan> 
     <exclude name="my.cool.package" /> 

     <!-- you can exclude with condition --> 
     <exclude name="my.cool.package.for.jodatime" /> 
      <if-class-not-available name="org.joda.time.LocalDate"/> 
     </exclude> 
    </scan> 
</beans> 
Powiązane problemy