xapi.util.impl.PropertyServiceDefault Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xapi-dev Show documentation
Show all versions of xapi-dev Show documentation
Everything needed to run a comprehensive dev environment.
Just type X_ and pick a service from autocomplete;
new dev modules will be added as they are built.
The only dev service not included in the uber jar is xapi-dev-maven,
as it includes all runtime dependencies of maven, adding ~4 seconds to build time,
and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).
The newest version!
package xapi.util.impl;
import java.security.AccessController;
import java.security.PrivilegedAction;
import xapi.annotation.gwt.MagicMethod;
import xapi.annotation.inject.SingletonDefault;
import xapi.util.X_Namespace;
import xapi.util.service.PropertyService;
@SingletonDefault(implFor=PropertyService.class)
public class PropertyServiceDefault implements PropertyService{
@Override
@MagicMethod(doNotVisit=true)
public String getProperty(final String key) {
return System.getProperty(key, null);
}
@Override
@MagicMethod(doNotVisit=true)
public String getProperty(final String key, final String dflt) {
return System.getProperty(key, dflt);
}
@Override
public void setProperty(final String key, final String value) {
if (System.getSecurityManager()==null) {
System.setProperty(key, value);
} else {
AccessController.doPrivileged(new PrivilegedAction() {
@Override
public Void run() {
System.setProperty(key, value);
return null;
}
});
}
}
@Override
public boolean isRuntimeInjection() {
return !"false".equals(getProperty(X_Namespace.PROPERTY_USE_X_INJECT));
}
}