Does an java extension always include a Factory.writeRegistryServiceInfo?

From the StarterProject which goes by the LOEclipse the following code is used in

`

   public static boolean __writeRegistryServiceInfo( XRegistryKey xRegistryKey ) {

    return Factory.writeRegistryServiceInfo(m_implementationName,
                                            m_serviceNames,
                                            xRegistryKey);
   }` 

But I think I have seen extensions which doesn’t use writeRegistryServiceInfo. So is it needed?
For a long time I also thought that an IDL file was needed when you make an extension but I have seen extensions without any IDL file so when are they needed?