admin@glassfish.java.net

Re: Item for next Tuedays's iTeam Meeting

From: Byron Nevins <byron.nevins_at_oracle.com>
Date: Thu, 15 Apr 2010 10:39:55 -0700

On 4/15/2010 9:33 AM, Jerome Dochez wrote:
>
> there is already that mechanism in place.
>
> On startup the startup code determines which server and config are current for this instance and stores those configuration with a specific registration name in the habitat (ServerEnvironment.DEFAULT_INSTANCE_NAME).
>
Unless there is some new Java rule -- that is impossible! Any String
declared in an interface is automatically final and public. It can not
be changed from the default value which is:
     String DEFAULT_INSTANCE_NAME = "default-instance-name";

  I searched through all of V3 code with Treegrep and there is no code
that tries to change that value (below). All of the code that uses that
constant is getting the garbage string above.

To make sure there isn't some btrace-style class rewriting or something
going on, as a final test I printed the value of DEFAULT_INSTANCE_NAME
at runtime from a temporarily modified uptime command. It printed:
"default-instance-name"

My guess -- the original plan was to add the String to
ServerEnvironmentImpl rather than ServerEnvironment

=============================================================================

What I did a couple days ago is introduce getServerName() to the
interface. Currently it returns "server". After I change the 60+ files
to use it -- I will have it start returning the real server name.

=============================================================================

C:\gf\v3>treegrep DEFAULT_INSTANCE_NAME | tee foo

C:\gf\v3>java com.elf.io.TreeGrep DEFAULT_INSTANCE_NAME
C:\gf\v3\admin\config-api\src\main\java\org\glassfish\config\support\DomainXml.java[120]:
                          Server.class.getName(),
ServerEnvironment.DEFAULT_INSTANCE_NAME);
C:\gf\v3\admin\config-api\src\main\java\org\glassfish\config\support\DomainXml.java[123]:
                          Config.class.getName(),
ServerEnvironment.DEFAULT_INSTANCE_NAME);
C:\gf\v3\admin\rest\src\main\java\org\glassfish\admin\rest\RestService.java[111]:
      * @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\admin\rest\target\classes\org\glassfish\admin\rest\RestService.java[111]:
      * @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\admin\server-mgmt\src\main\java\com\sun\enterprise\admin\servermgmt\pe\PEDomainsManager.java[576]:
         return PEFileLayout.DEFAULT_INSTANCE_NAME;
C:\gf\v3\admin\server-mgmt\src\main\java\com\sun\enterprise\admin\servermgmt\pe\PEDomainXmlTokens.java[90]:
             instanceName = PEFileLayout.DEFAULT_INSTANCE_NAME;
C:\gf\v3\admin\server-mgmt\src\main\java\com\sun\enterprise\admin\servermgmt\pe\PEFileLayout.java[57]:
     public static final String DEFAULT_INSTANCE_NAME =
C:\gf\v3\admin\server-mgmt\src\main\java\com\sun\enterprise\admin\servermgmt\pe\PEScriptsTokens.java[78]:
             tv = new TokenValue(SERVER_NAME,
PEFileLayout.DEFAULT_INSTANCE_NAME);
C:\gf\v3\common\glassfish-api\src\main\java\org\glassfish\api\admin\ServerEnvironment.java[60]:
     String DEFAULT_INSTANCE_NAME = "default-instance-name";
C:\gf\v3\core\kernel\src\main\java\com\sun\enterprise\v3\server\ApplicationLifecycle.java[126]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\core\kernel\src\main\java\com\sun\enterprise\v3\server\ApplicationLoaderService.java[125]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\core\kernel\src\main\java\com\sun\enterprise\v3\server\SystemTasks.java[82]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\core\kernel\src\main\java\com\sun\enterprise\v3\server\UpgradeStartup.java[96]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\core\kernel\src\main\java\org\glassfish\kernel\config\DefaultConfigParser.java[71]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\core\kernel\src\test\java\org\glassfish\tests\kernel\
ment\EventsTest.java[117]:
                      Server.class.getName(),
ServerEnvironment.DEFAULT_INSTANCE_NAME);
C:\gf\v3\deployment\admin\src\main\java\org\glassfish\deployment\admin\DisableCommand.java[86]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\deployment\admin\src\main\java\org\glassfish\deployment\admin\EnableCommand.java[95]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\ejb\ejb-container\src\main\java\com\sun\ejb\base\sfsb\util\EJBServerConfigLookup.java[100]:
     @Inject(name=ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\ejb\ejb-container\src\main\java\org\glassfish\ejb\embedded\EjbBuilder.java[66]:
     @Inject(name= ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\tests\amx\src\org\glassfish\admin\amxtest\AMXTestBase.java[557]:
     private static final String DEFAULT_INSTANCE_NAME = "test";
C:\gf\v3\tests\amx\src\org\glassfish\admin\amxtest\AMXTestBase.java[564]:
             name = DEFAULT_INSTANCE_NAME;
C:\gf\v3\tests\amx\src\org\glassfish\admin\amxtest\AMXTestBase.java[566]:
             name = qualifier + "." + DEFAULT_INSTANCE_NAME;
C:\gf\v3\web\admin\src\main\java\org\glassfish\web\admin\cli\DeleteVirtualServer.java[87]:
     @Inject(name=ServerEnvironment.DEFAULT_INSTANCE_NAME)
C:\gf\v3\web\jspcaching-connector\src\main\java\org\glassfish\jspcaching\integration\GlassFishTldProvider.java[113]:
             Config.class, ServerEnvironment.DEFAULT_INSTANCE_NAME);
C:\gf\v3\web\web-glue\src\main\java\com\sun\enterprise\web\connector\extension\GrizzlyConfig.java[142]:
             Config cfg = habitat.getComponent(Config.class,
ServerEnvironment.DEFAULT_INSTANCE_NAME );
C:\gf\v3\webservices\jsr109-impl\src\main\java\com\sun\enterprise\webservice\WsTxUtils.java[111]:
             Config config =
Globals.getDefaultHabitat().getComponent(Config.class,
ServerEnvironment.DEFAULT_INSTANCE_NAME);
C:\gf\v3\webservices\jsr109-impl\src\main\java\org\glassfish\webservices\WebServiceContractImpl.java[90]:
         return habitat.getComponent(Config.class,
ServerEnvironment.DEFAULT_INSTANCE_NAME);
Time: 230360 msec