// Path: plume-services/src/main/java/com/coreoz/plume/services/time/SystemTimeProvider.java
// @Singleton
// public class SystemTimeProvider implements TimeProvider {
// 
// 	private final Clock clock;
// 
// 	@Inject
// 	public SystemTimeProvider() {
// 		this.clock = Clock.systemDefaultZone();
// 	}
// 
// 	@Override
// 	public Clock clock() {
// 		return clock;
// 	}
// 
// }
// 
// Path: plume-services/src/main/java/com/coreoz/plume/services/time/TimeProvider.java
// public interface TimeProvider {
// 
// 	Clock clock();
// 
// 	/**
// 	 * Returns the current time in milliseconds
// 	 */
// 	default long currentTime() {
// 		return clock().millis();
// 	}
// 
// 	default Instant currentInstant() {
// 		return Instant.now(clock());
// 	}
// 
// 	default LocalDate currentLocalDate() {
// 		return LocalDate.now(clock());
// 	}
// 
// 	default LocalDateTime currentDateTime() {
// 		return LocalDateTime.now(clock());
// 	}
// 
// }


import com.coreoz.plume.services.time.SystemTimeProvider;
import com.coreoz.plume.services.time.TimeProvider;
import com.google.inject.AbstractModule;
package com.coreoz.plume.guice;


public class GuiceServicesModule extends AbstractModule {

	@Override
	protected void configure() {
// Path: plume-services/src/main/java/com/coreoz/plume/services/time/SystemTimeProvider.java
// @Singleton
// public class SystemTimeProvider implements TimeProvider {
// 
// 	private final Clock clock;
// 
// 	@Inject
// 	public SystemTimeProvider() {
// 		this.clock = Clock.systemDefaultZone();
// 	}
// 
// 	@Override
// 	public Clock clock() {
// 		return clock;
// 	}
// 
// }
// 
// Path: plume-services/src/main/java/com/coreoz/plume/services/time/TimeProvider.java
// public interface TimeProvider {
// 
// 	Clock clock();
// 
// 	/**
// 	 * Returns the current time in milliseconds
// 	 */
// 	default long currentTime() {
// 		return clock().millis();
// 	}
// 
// 	default Instant currentInstant() {
// 		return Instant.now(clock());
// 	}
// 
// 	default LocalDate currentLocalDate() {
// 		return LocalDate.now(clock());
// 	}
// 
// 	default LocalDateTime currentDateTime() {
// 		return LocalDateTime.now(clock());
// 	}
// 
// }


// Path: plume-services/src/main/java/com/coreoz/plume/guice/GuiceServicesModule.java
import com.coreoz.plume.services.time.SystemTimeProvider;
import com.coreoz.plume.services.time.TimeProvider;
import com.google.inject.AbstractModule;

package com.coreoz.plume.guice;


public class GuiceServicesModule extends AbstractModule {

	@Override
	protected void configure() {
		bind(TimeProvider.class).to(SystemTimeProvider.class);