Untitled

                Never    
Java
       
public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner clavier = new Scanner(System.in);
		URL[] classLoaderUrls = null;
		// URLClassLoader sur ftp
		try {
			classLoaderUrls = new URL[]{new URL("ftp://localhost:2121/")};
		} catch (MalformedURLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		URLClassLoader urlcl = new URLClassLoader(classLoaderUrls);
		
		System.out.println("Bienvenue dans votre gestionnaire dynamique d'activité BRi");
		System.out.println("Pour ajouter une activité, celle-ci doit être présente sur votre serveur ftp");
		System.out.println("A tout instant, en tapant le nom de la classe, vous pouvez l'intégrer");
		System.out.println("Les clients se connectent au serveur 3000 pour lancer une activité");
		
		new Thread(new ServeurBRi(PORT_SERVICE)).start();
		
		while (true){
				try {
					String classeName = clavier.next();
					Class<?> beanClass = urlcl.loadClass(classeName);
					ServiceRegistry.addService(beanClass);
					// ServiceRegistry.addService(classeName);
				} catch (Exception e) {
					System.out.println(e);
				}
			}		
	}

Class<?> newService = ServiceRegistry.class.getClassLoader().loadClass(name);
        try {
            if(Service.class.isAssignableFrom(newService))
                if(Modifier.isPublic(newService.getModifiers()))
                    if(!Modifier.isAbstract(newService.getModifiers()))
                        if(Modifier.isPublic(newService.getConstructor(Socket.class).getModifiers()))
                            if(newService.getConstructor(Socket.class).getExceptionTypes().length == 0)
                                if(Modifier.isPrivate(newService.getDeclaredField("client").getModifiers()))
                                    if(Modifier.isFinal(newService.getDeclaredField("client").getModifiers()))
                                        servicesClasses.add(newService);

Raw Text