code: @Override
      public void start(BundleContext context) throws Exception {
          this.bundleContext = context;
          this.bundle = context.getBundle();
  
          try {
              // check if another version of the bundle exists
              long myId = this.bundle.getBundleId();
              String myName = this.bundle.getSymbolicName();
              Bundle[] currentBundles = this.bundleContext.getBundles();
              for (Bundle bundle : currentBundles) {
                  if (myId != bundle.getBundleId() && myName.equals(bundle.getSymbolicName())) {
                      // found another version of me
                      handleAnotherVersionAtStartup(bundle);
                  }
              }
  
              // set bundle's user-defined properties
              this.properties = new Properties();
              properties.put(Constants.LOOKUP_PROP_VERSION, bundle.getVersion().toString());
              String alias = alias();
              if (!StringUtils.isEmpty(alias)) {
                  properties.put(Constants.LOOKUP_PROP_MODULE, alias);
              }
  
              init();
          } catch (Exception e) {
              _destroy();
              throw e;
          }
      }
docs: {@inheritDoc}